python 实现定时任务
2024-08-27 08:10:53
需求:
想实现 每周一到周五下班钉钉打卡提醒,每周四发周报提醒
使用了二种方法实现
一:apscheduler,代码如下
import json,requests,datetime
from apscheduler.schedulers.blocking import BlockingScheduler
access_token = 'XXXXXXXX' #钉钉token
contentWee ='今天周四吆,记得发周报'
contentPun = '下班不打卡,辛苦也白搭' def notify(access_token,conId,content,tele):
'''
钉钉通知
:param access_token:
:param conId: 0:艾特所有人 1:艾特个人 2或其他:普通通知
:param content: 通知内容
:param tele: conId==1时使用,tele: [13800000000,13800000001]
:return:
'''
url = 'https://oapi.dingtalk.com/robot/send?access_token=' + access_token if conId == 0:
# 艾特所有人
con = {
"msgtype": "text",
"text": {
"content": content
},
"at": {
"isAtAll": 'true',
"atMobiles": [ ]
}
}
elif conId == 1:
# 艾特个人
con = {
"msgtype": "text",
"text": {
"content": content
},
"at": {
"isAtAll": 'false',
"atMobiles": tele
}
}
else:
# 普通通知
con = {
"msgtype": "markdown",
"markdown": {
"title": "hhh",
"text": content
},
} data = json.dumps(con)
headers = {'content-type': 'application/json'}
r2 = requests.post(url, data=data, headers=headers)
print(r2.text) if __name__ == '__main__':
tele = [13800000000,13800000001]
scheduler = BlockingScheduler()
# mon-fri: 周一到周五,也可以写成 1-5 ,时间 18:30 ,ars:方法 notify入参;每周-到周五下午六点半执行notify方法
scheduler.add_job(notify, 'cron', day_of_week='mon-fri', hour=18, minute=30, args=[access_token,1,contentPun,tele])
#同上,每周四下午4点执行notify方法
scheduler.add_job(notify, 'cron', day_of_week='thu', hour=16, minute=00, args=[access_token,4,contentWee,tele])
scheduler.start()
二、schedule 代码如下,阻塞流程
import json,requests,time,schedule,datetime #notify方法同一
if __name__ == '__main__':
schedule.every().thursday.at('16:00').do(notify,access_token,contentWee) # 每周四 16.00执行
while True:
schedule.run_pending()
部署:
直接执行 nohup python 文件名 & 建议使用第一种调度方法
最新文章
- Android Studio开发RecyclerView遇到的各种问题以及解决(二)
- expdp 报The value (30) of MAXTRANS parameter ignored错误的原因诊断
- Android应用开发项目结构分析
- marquee标签、插入百度地图
- android模拟器启动没有拨号功能
- JAVA WEB 作用域之间的区别
- python的深拷贝和浅拷贝
- 如何从uiview里面,获取其上层的uiviewcontroller
- 1.0.3-学习Opencv与MFC混合编程之---打开本地摄像头
- delphi倒计时按钮写法
- Fiddler证书安装(查看HTTPS)
- 格式化输出&;初始编码&;运算符
- Java 的 volatile 修饰符
- [转帖][分享] 关于系统DIY--by 原罪
- BigDecimal - Java精确运算
- golang 对struct进行Serialize的方法,即将存取二进制文件到struct的方法
- JavaWeb:动作标识
- CentOS右键菜单添加新增文件命令
- 「Vue」路由
- Scribes:小型文本编辑器,支持远程编辑