APScheduler 增加作业 add_job

摘要:
在内置执行器中,只有ProcessPoolExecutor将序列化作业。如果在应用程序初始化期间在持久作业存储中计划了作业,则必须为该作业定义一个显式ID,并使用replace_Existing=True,否则应用程序启动时将获得该作业的新副本!这可能会导致多次执行。
1、add_job() 

该方式返回一个aoscheduler.job,Job,可用于以后修改或删除作业。 

 

2、scheduled_job() 

 该方法方便什么在应用程序运行时不更改的作业。 

 

2、调度安排工作的时候,如果在添加作业时调度程序尚未运行,则将暂停调度作业,并且仅在调度程序启动时,才计算其首次运行时间。 

 

3、注意:如果使用序列化执行程序或者作业存储,则会对作业增加要求 

目标对象必须全局可访问 

可调用对象任何参数可序列化 

在内置的作业存储中,只有MemoryJobStore不会序列化作业。在内置执行程序中,只有ProcessPoolExecutor将序列化作业。 

 

 

如果在应用程序初始化期间在持久性作业存储安排作业,则必须为该作业定义一个明确ID并使用,replace_existing=True 否则应用程序启动时,你将获得作业该作业新副本! 

replace_existing=True 

程序中断后重新运行时会自动从数据库读取作业信息,而不需要重新再添加到调度器中,如果不注释 21-25 行添加作业的代码,则作业会重新添加到数据库中,这样就有了两个同样的作业,避免出现这种情况可以在 add_job 的参数中增加 replace_existing=True,如 

 

在程序中添加add_job 设置id 那么 没有replace_existing=True 

1、会报错,id重复,如果加了重复id 会被过滤不会报错。 

apscheduler.jobstores.base.ConflictingIdError: 'Job identifier (1234567) conflicts with an existing job' 
 

socketio_server.py uwsgl.lm uwsgi.log uwsgi.pid % Scratches and Consoles main (1) Run: •t Traceback (most recent call last): defaults.rnax instances' tirnezone . do something else here, maybe add jobs etc. job — sched sched.start() run 3, 24, 10, 'date', run 3, 13, 24, 11, 22, 5), 1234567' 1234567") Termi I File "/home/tang/Desktop/qxym/qxym/apps/apsChenduler/main . py", line 66, in <module> sched.start() File "/h0T,e/tang/ virtualenvs/qxym/lib/python3 6/site-packages/apscheduler/schedulers/blocking py" , line 18, in start super(810ckingScheduler, self) .start(•args, ••kwargs) File "/home/tang/ virtualenvs/qxyT,/lib/python3 6/site-packages/apscheduler/schedulers/base. py" , line 162, self ._real add job(job, jobstore_alias, replace_existing) File "/h0T,e/tang/ virtualenvs/qxym/lib/python3 6/site-packages/apscheduler/schedulers/base. py" , line 867, store.add '0b) Fl e I'/ ore/tang/ . virtua envs/qxym/ 1 /pyt on3.6/s1te-pac ages/apsc e u er/J0 stores/sq a c emy.py", Ine raise ConflictingldError(job.id) apscheduler.jobstores .base.ConflictingIdError: 'Job identifier (1234567) conflicts with an existing job' Process finished with exit code 1 in start real add job 100, O IDE and plugin Updates pycharm is ready to update. Window 4: Run i 5: Debug 5: TODO p 9: version control Database Changes Terminal python Console

2、会导致原来的存储作业被刷新,重新执行。有可能会导致多次执行。 

免责声明:文章转载自《APScheduler 增加作业 add_job》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux命令--ldconfig和ldd用法iOS 流布局 UICollectionView使用(UICollectionVIew的代理方法)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

echarts使用技巧(一)echarts的图表自适应resize问题、单选、缩放等

因此,当浏览器发生调整大小事件时,让它触发rechart调整大小事件来重新绘制画布。使用窗口。resize=myChart resize;通过将窗口的调整大小事件分配给回声调整大小事件,可以实现自适应。当然,这是单一图表的情况。如果有多个图表,它将无法工作。...

JRebel 6 破解版及使用方法

2.解压下载的jrebel6.0.0-crack.zip、jrebel6.0 jar包和破解文件。假设文件在D:/jrebel步骤:1中解压缩。eclipse下载jrebe插件,可以在市场上下载。2.打开eclipse的窗口首选项jrebel,打开优势选项卡,并将jar包的路径指向D:/jrebel/jrebel.jar。用CMD打开DOS窗口,输入cd/d...

从零开始制作Galgame——我的Ren'py学习笔记(一)

然后点击“启动工程”点击“开始游戏”效果应该是这样的好了,现在你就制作出了属于自己的第一个游戏角色在一般的Galgame中,不是所有话都是“旁白”说的,一个完整的游戏里面应该有主角那么,怎么在ren'py中定义角色呢我们把刚才的代码更改一下definel=Characterlabelstart:l"HelloWorld!...

Spring Boot 核心配置文件 bootstrap &amp;amp; application

boostrap由父ApplicationContext加载,比applicaton优先加载boostrap里面的属性不能被覆盖3、bootstrap/application的应用场景application配置文件这个容易理解,主要用于SpringBoot项目的自动化配置。这个父级的SpringApplicationContext是先加载的,在加载appli...

解决微信公众平台接口配置信息配置失败问题

填写完URL和TOKEN后,当您单击“提交”时,系统将始终提示您“配置失败”或其他错误,以确认URL所指向的后台页面代码是否正常。请确认TOKEN配置是否正常。此时,请检查INDEX页面的编码格式,并将其更改为GB2312进行尝试,这可能会解决您的问题。我想把这篇文章献给我浮躁的自己。...

JavaScript算法学习:获取字符串最后一位方法及判断是否以指定字符串开始或结尾

Str.substr,其中start是必需的参数,表示坐标的起始位置。正值在正方向计数,负值在反方向计数,长度是可选参数,表示从起始位置开始计数的数字。...