How do I schedule an interval job with APScheduler?

后端 未结 5 2054
情话喂你
情话喂你 2020-12-19 05:32

I\'m trying to schedule an interval job with APScheduler (v3.0.0).

I\'ve tried:

from apscheduler.schedulers.blocking import BlockingScheduler
sched =         


        
5条回答
  •  难免孤独
    2020-12-19 05:49

    I haven't figured out what caused the original issue, but I got around it by swapping the order in which the jobs are scheduled, so that the 'interval' job is scheduled BEFORE the 'cron' jobs.

    i.e. I switched from this:

    def my_cron_job1():
        print "cron job 1"
    
    def my_cron_job2():
        print "cron job 2"
    
    def my_interval_job():
        print "interval job"
    
    if __name__ == '__main__':
        from apscheduler.schedulers.blocking import BlockingScheduler
        sched = BlockingScheduler(timezone='MST')
    
        sched.add_job(my_cron_job1, 'cron', id='my_cron_job1', minute=10)
        sched.add_job(my_cron_job2, 'cron', id='my_cron_job2', minute=20)
    
        sched.add_job(my_interval_job, 'interval', id='my_job_id', seconds=5)
    

    to this:

    def my_cron_job1():
        print "cron job 1"
    
    def my_cron_job2():
        print "cron job 2"
    
    def my_interval_job():
        print "interval job"
    
    if __name__ == '__main__':
        from apscheduler.schedulers.blocking import BlockingScheduler
        sched = BlockingScheduler(timezone='MST')
    
        sched.add_job(my_interval_job, 'interval', id='my_job_id', seconds=5)
    
        sched.add_job(my_cron_job1, 'cron', id='my_cron_job1', minute=10)
        sched.add_job(my_cron_job2, 'cron', id='my_cron_job2', minute=20)
    

    and now both the cron jobs and the interval jobs run without a problem in both environments.

提交回复
热议问题