python scheduler 定时执行,pythonschedule定时任务原理
本文主要介绍Python中调度模块在调度任务方面的使用。文章围绕主题,详细介绍细节,有一定的参考价值,有需要的朋友可以参考一下。
00-1010 1取消定时任务2。定时任务只执行一次。3获取所有定时任务。4取消所有任务。5标记定时任务。也可以通过标签获取或取消定时任务。
目录
例如,当满足某些条件时,计划任务被取消。在这种场景下,不可能杀死进程,所以可以使用取消预定任务的功能。
代码如下。计数控制执行5后,计划任务将被取消。
导入计划
导入时间
计数=0
def do_func(姓名,年龄):
全局计数
计数=1
print(time . strftime( % y-% m-% d % h :% m :% s ,time . local time(time . time())) in do func 3360 name: name Age: str(Age))
定义主():
job=schedule . every(2). seconds . do(do _ func,张三丰,100)
而True:
如果计数=5:
schedule.cancel_job(作业)
schedule.run_pending()
if __name__==__main__:
主()
执行结果如下。可以看到,进程在打印完5之后并没有退出,而是不再执行预定的任务。
022-05-25 00:0:15 IN DOFUNC :姓名:张三丰年龄:100
022-05-25 00:0:17 in do func :姓名张三丰年龄:100
022-05-25 00:0:19 IN DOFUNC :姓名:张三丰年龄:100
022-05-25 00:0:21 IN DOFUNC :姓名:张三丰年龄:100
022-05-25 00:0:23 IN DOFUNC :姓名:张三丰年龄:100
1 取消定时任务
在固定的时间执行一次任务似乎没有意义,但是在某些场景下,比如一定次数后,满足一定条件时,只需要再执行一次,这个时候就派上用场了。
如下为单纯的只执行一次的定时任务
导入时间
def do_func(姓名,年龄):
print(time . strftime( % y-% m-% d % h :% m :% s ,time . local time(time . time())) in do func 3360 name: name Age: str(Age))
返程时间表。取消作业
定义主():
时间表。每隔(2)。seconds.do (do _ func,张三丰,100)
而True:
schedule.run_pending()
if __name__==__main__:
主()
执行结果如下。可以发现,一旦执行,就不会再执行了。
022-05-25 00:14336020 IN DOFUNC :姓名:张三丰年龄:100
执行一次预定任务的原理,其实就是在任务函数结束时返回一个取消任务的消息。这里真正的价值在于赋予任务函数决定任务是否完成的权利,即可以在任务函数中进行条件判断,当达到一定的业务逻辑条件时,可以返回取消预定任务的消息,从而更加灵活的设置预定任务。
如下,你可以判断你是否具备业务中的停止条件,当条件满足时,你将停止并停止执行。
导入计划
导入时间
计数=1
def do_func(姓名,年龄):
全局计数
计数=1
print(time . strftime( % y-% m-% d % h :% m :% s ,time . local time(time . time())) in do func 3360 name: name Age: str(Age))
如果计数=5:
Print(已经执行了5次,达到了预期的效果。‘不需要再执行一次……’)
返程时间表。钙
ncelJob
def main():
schedule.every(2).seconds.do(do_func,"张三丰",100)
while True:
schedule.run_pending()
if __name__=="__main__":
main()
执行结果如下:
2022-05-25 00:19:30 in do func : 姓名:张三丰 年龄:100
2022-05-25 00:19:32 in do func : 姓名:张三丰 年龄:100
2022-05-25 00:19:34 in do func : 姓名:张三丰 年龄:100
2022-05-25 00:19:36 in do func : 姓名:张三丰 年龄:100
2022-05-25 00:19:38 in do func : 姓名:张三丰 年龄:100
已经执行5次了,达到预期结果了,不需要再执行了...
3 获取所有的定时任务
获取所有的定时任务作用就是可以根据一定的条件,对某些满足条件的定时任务进行各种操作如修改等
如下代码为对间隔3的任务从每3秒修改为每3分钟
import schedule
执行结果如下:
原始定时任务:
Job(interval=2, unit=seconds, do=do_func, args=('张三丰', 100), kwargs={})
Job(interval=3, unit=seconds, do=do_func, args=('张三丰', 200), kwargs={})
修改后的定时任务:
Job(interval=2, unit=seconds, do=do_func, args=('张三丰', 100), kwargs={})
Job(interval=3, unit=minutes, do=do_func, args=('张三丰', 200), kwargs={})
4 取消所有任务
如下为取消所有任务的代码,取消之前显示有两个任务,取消后显示有0个定时任务
import schedule
执行结果为:
2
0
5 给定时任务打标签,同样通过标签获取或取消定时任务
如下代码演示了给任务打标签,根据标签挑选任务,根据标签清除任务等操作
import schedule
执行结果如下:
根据demo2标签挑选出的任务
Job(interval=2, unit=seconds, do=do_func, args=('张三丰', 100), kwargs={})
Job(interval=3, unit=seconds, do=do_func, args=('张三丰', 200), kwargs={})
删除demo3标签的任务后,剩余的任务
Job(interval=2, unit=seconds, do=do_func, args=('张三丰', 100), kwargs={})
到此这篇关于Python中schedule模块关于定时任务使用方法的文章就介绍到这了,更多相关Python schedule 模块内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。