• APScheduler 增加作业 add_job


    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、会导致原来的存储作业被刷新,重新执行。有可能会导致多次执行。 

  • 相关阅读:
    POJ 1185 状压DP
    POJ 1321
    hdu 1384 查分约束
    hdu 2196 树形dp
    hdu 4612 双联通缩点+树形dp
    poj 3469 最小割模板sap+gap+弧优化
    hdu 4858 容器的简单模拟
    hdu 4857 逆向拓扑排序+反向输出
    isap算法模板poj 1273gap+弧优化 最大流
    ISAP 算法的学习
  • 原文地址:https://www.cnblogs.com/Xingtxx/p/15685086.html
Copyright © 2020-2023  润新知