python动态添加删除定时任务

python动态添加删除定时任务,第1张

可以基于tornado-APScheduler实现添加动态添加/删除/暂停/清除定时任务。

安装:pip3 install apsheduler

1.任何调度器在开始后,不能再次start。不然会出现异常

2.shutdown方法:终结掉对应的调度器,所以代码逻辑里需要检测一下. running方法可以判断调度器的运行状态,如果需要设计delete方法清除某个任务,建议用remove方法,对应代码逻辑需要注意start()不要重复

3.注意BlockingScheduler,如果你想动态添加任务的话,这个调度器是阻塞的,所以每个任务必须是一个守护线程,个人感觉不太方便,建议用其他非阻塞的

4. get_jobs()方法很有用,如果我们加上dir,配合这个方法可以很灵活地配置

5.修改一个周期任务,需要用modify_job方法,根据你的job_id修改

Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,作为一门叫做ABC语言的替代品。 Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。

首先我们建一个目录 my_modules,其中包括三个文件

* init.py: 模块文件

* my_module.py: 测试用的模块

* my_another_module:

另一个测试用的模块

my_module.py

from my_modules.my_another_module import *

class MyObject(object):

def test(self):

print 'MyObject.test'

MyObject1().test()

MyObject2().test()

MyAnotherObject().test()

class MyObject1(object):

def test(self):

print 'MyObject1.test'

class MyObject2(object):

def test(self):

print 'MyObject2.test'

my_another_module.py

class MyAnotherObject(object):

def test(self):

print 'MyAnotherObject.test'

test.py

def createInstance(module_name, class_name, *args, **kwargs):

module_meta = __import__(module_name, globals(), locals(), [class_name])

class_meta = getattr(module_meta, class_name)

obj = class_meta(*args, **kwargs)

return obj

obj = createInstance("my_modules.my_module", "MyObject")

obj.test()

MyObject.test

MyObject1.test

MyObject2.test

MyAnotherObject.test


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7971043.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存