作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一份定期工作。由于需要对其进行升级,而且我不想停止主要代码,因此我希望可以即时修改/更新作业。我将通过简单的例子来演示。
主要脚本:
from apscheduler.schedulers.blocking import BlockingScheduler
from my_job_func import my_job
if __name__ == '__main__':
scheduler = BlockingScheduler()
scheduler.add_job(my_job, 'interval', seconds=3)
try:
scheduler.start()
except (KeyboardInterrupt, SystemExit):
pass
要在文件 my_job_func.py 中即时修改的作业:
def my_job():
print('Make some changes!!')
那么,是否可以在不停止主脚本的情况下即时修改或更新 my_job()?
最佳答案
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.triggers.interval import IntervalTrigger
from my_job_func import my_job
def observer(job):
# you can either reschedule the job
job.reschedule(...)
# or modify it
changes = get_update() # get update from configuration
job.modify(**changes)
if __name__ == '__main__':
scheduler = BlockingScheduler()
my_job_id = scheduler.add_job(my_job, 'interval', seconds=3)
scheduler.add_job(observer, IntervalTrigger(minutes=5), args=(my_job_id,), name="observer")
scheduler.start()
您可以添加一个单独的观察者作业帮助动态修改 my_job
。
请注意,更改可能不会立即生效。您可以调整观察者作业的间隔以满足您的需要。
关于python - 如何在 APScheduler 中动态修改作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60465547/
我是一名优秀的程序员,十分优秀!