【问题标题】:Can Apscheduler run two jobs with same cron trigger?Apscheduler 可以使用相同的 cron 触发器运行两个作业吗?
【发布时间】:2019-11-04 13:42:15
【问题描述】:

是否会为两个不同的作业使用具有相同时间和日期触发器的 sched.add_job 来同时运行它们? 如果没有,如何使用相同的后台调度程序添加具有不同触发时间的第二个作业?

【问题讨论】:

  • stackoverflow.com/questions/29223222/…> 的可能重复项

标签: python cron apscheduler


【解决方案1】:

您可以使用 apscheduler 同时执行两个作业:

from flask import Flask
import atexit
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler()

def job1():
    for _ in range(1000):
        print('a')

def job2():
    for _ in range(1000):
        print('b')

h = 10 
m = 0
# set h,m to the time you are ready to test

scheduler.add_job(job1,'cron',hour=h,minute=m)
scheduler.add_job(job2,'cron',hour=h,minute=m)
scheduler.start()
atexit.register(lambda: scheduler.shutdown())
app = Flask(__name__)


if __name__ == "__main__":
    app.run()

【讨论】:

    【解决方案2】:
    from apscheduler.schedulers.background import BackgroundScheduler
    def my_task1():
        print ("Task 1")
    def my_task2():
        print ("Task 2")
    
    if __name__ == '__main__':
       process_scheduler = BackgroundScheduler()
       process_scheduler.add_job(my_task1, 'cron', id='my_task1', seconds=5)
       process_scheduler.add_job(my_task2, 'cron', id='my_task2', seconds=10)
       process_scheduler.start()
       atexit.register(lambda: process_scheduler.shutdown())
    

    【讨论】:

      猜你喜欢
      • 2020-12-24
      • 2013-08-09
      • 1970-01-01
      • 1970-01-01
      • 2021-08-08
      • 1970-01-01
      • 2012-07-10
      • 2018-10-28
      • 1970-01-01
      相关资源
      最近更新 更多