admin管理员组文章数量:1794759
Python定时任务: schedule模块
今天把以前的项目拿出来重新写了下,然后就发现定时任务这里有点问题,我以前是在乌班图里跑项目,所以当时使用的 django-crontab 实现的,但是我现在在Windows系统下跑项目需要改造这里,准备使用 schedule模块
两种方案的对比: django-crontab安装
pip3 install django-crontab添加应用
INSTALLED_APPS = [ ... 'django_crontab', # 定时任务 ]创建定时任务
def my_scheduled_job(): pass 配置定时任务 在django项目的settings里添加如下 CRONJOBS = [ ('*/5 * * * *', 'myapp.cron.my_scheduled_job') ] 基本格式 : * * * * * 分 时 日 月 周 命令 M: 分钟(0-59)。每分钟用*或者 */1表示 H:小时(0-23)。(0表示0点) D:天(1-31)。 m: 月(1-12)。 d: 一星期内的天(0~6,0为星期天)。 启动命令 注意点运行和django无关,依赖的是linux的crontab定时服务,因此无法在windowns下运行
schedule
安装
pip3 install schedule使用
import schedule def work1(): print('生成静态页') def work2(xxx): print(xxx) xxx = '生成静态页' schedule.every(2).minutes.do(work1) schedule.every().hour.do(work1) schedule.every().day.at("9:30").do(work1) schedule.every().monday.do(work1) schedule.every().sunday.at("13:00").do(work1) # 带参数 schedule.every(5).to(10).days.do(work2, xxx) while True: schedule.run_pending() # 每隔2分钟执行一次任务 # 每隔一小时执行一次任务 # 每天的9:30执行一次任务 # 每隔5到10天执行一次任务 # 每周一的这个时候执行一次任务 # 每周日12:00执行一次任务 # run_pending:运行所有可以运行的任务 注意:schedule方法是串行的,也就是说,如果各个任务之间时间不冲突,那是没问题的;如果时间有冲突的话,会串行的执行命令
优点:简单, 不依赖django,Python都可以用 缺点: 在django环境需要另起线程(使用celery异步不错)
版权声明:本文标题:Python定时任务: schedule模块 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686479642a72169.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论