【发布时间】:2022-07-21 03:23:50
【问题描述】:
我想使用 apscheduler 来安排一个异步函数
如果我向机器人添加作业,并且在重新启动机器人后以某种方式停止运行机器人,它应该继续该功能。
就像我每 3 小时安排一次异步功能,我的机器人在中间停止,然后我重新启动了机器人(重新启动时我们将正常执行 schedular.start())。我想让该异步功能再次继续而无需再次添加。
我试过这个,但它不起作用
from apscheduler.executors.asyncio import AsyncIOExecutor
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
from apscheduler.schedulers.asyncio import AsyncIOScheduler
from pytz import utc
import datetime
jobstores = {
'default': SQLAlchemyJobStore(url=database_url),
}
executors = {
'default': AsyncIOExecutor(),
}
job_defaults = {
'coalesce': False,
'max_instances': 1
}
scheduler = AsyncIOScheduler(jobstores=jobstores,
executors=executors,
job_defaults=job_defaults,
timezone=utc)
async def myfunc():
print("result")
trigger_time = datetime.datetime.utcnow() + datetime.timedelta(hours=3)
scheduler.add_job(myfunc, 'interval',id=55454,run_date=trigger_time)
scheduler.start()
【问题讨论】:
标签: python python-asyncio apscheduler