定时任务

 我来答
休究绍B
2022-07-19 · TA获得超过6463个赞
知道大有可为答主
回答量:6551
采纳率:100%
帮助的人:321万
展开全部

实现定时任务的方法有很多,接下来我们针对各种方法对比下优缺点。

sched模块实现了一个时间调度程序,该程序可以通过单线程执行来处理按照时间尺度进行调度的时间。
通过调用scheduler.enter(delay,priority,func,args)函数,可以将一个任务添加到任务队列里面,当指定的时间到了,就会执行任务(func函数)。

执行结果为:

按顺序执行任务:

执行结果为:

s.run()会阻塞当前线程的执行
可以用

也可以用s.cancal(action)来取消sched中的某个action

APScheduler有四种组件:

示例2、

示例3、

示例4、

运行结果为:

示例5、

运行结果:

示例6、

示例7、

缺点: 遇到问题排查时比较困难。
精讲见celery

优点: 基于Redis的作业队列工具,优先选择APScheduler定时框架。小而精。
缺点: 没有定时执行的功能。
后续精讲持续更新中。。。

可以将所需要的Python程序打包成exe文件,然后在windows下设置定时执行。
常见:
Windows 任务计划程序
Windows Service
SQL Agent 的 Job

优点: 可以管理和调度多个任务,可以进行控制。
缺点: 阻塞式函数

优点: 不需要程序自己维护定时器,不占用程序的资源。
缺点: 不太灵活,crontab因为是操作系统的命令,独立于程序运行,所以也就是在程序还没有运行的时候,就已经确定了有哪些定时任务需要执行,并东提前交代给了Linux系统,如果程序运行当中,发现有新的定时任务需求,想要让程序自动交代给crontab一个新的定时任务,并不是很方便。

语法

说明

参数说明

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式