python apschedule BlockingScheduler with interval trigger:立即启动

use*_*177 2 python apscheduler

我使用python apscheduler每45分钟安排一次特定的任务.问题是,当我添加作业并启动调度程序时,它从现在起45分钟开始.

from apscheduler.schedulers.blocking import BlockingScheduler

class myClass:

    def schedule(self):
        self.scheduler = BlockingScheduler()
        self.scheduler.add_job(self.myJob, 'interval', minutes=45)
        self.scheduler.start()

    def myJob(self):
        print('I finally started')
Run Code Online (Sandbox Code Playgroud)

我尝试设置start_date,但没有成功.如何确保作业立即执行,而不是在第一次等待间隔后?

Ale*_*olm 10

试试next_run_time=datetime.now().

  • `from datetime import datetime`,然后我使用 `datetime.utcnow()` 因为我用 `BlockingScheduler({'apscheduler.timezone': 'UTC'})` 设置了我的调度程序 (2认同)

ybd*_*ire 6

这不是一个好的解决方案,但对我有用。

from apscheduler.schedulers.blocking import BlockingScheduler

class myClass:

    def schedule(self):
        self.myJob()#run your job immediately here, then scheduler
        self.scheduler = BlockingScheduler()
        self.scheduler.add_job(self.myJob, 'interval', minutes=45)
        self.scheduler.start()

    def myJob(self):
        print('I finally started')
Run Code Online (Sandbox Code Playgroud)