fastapi apscheduler: No trigger by the name “interval“ was found

在尝试使用FastAPI集成APScheduler进行定时任务时,遇到了两个主要问题。首先,由于找不到'interval'触发器导致LookupError,解决方法是使用实例化的IntervalTrigger。其次,当把定时任务逻辑封装到类中,由于协程对象的序列化问题,引发了'Can't pickle coroutine objects'错误。为了解决这个问题,需要将定时任务改为静态方法。这两个调整使得APScheduler能正确地在FastAPI应用中运行定时任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

尝试在fastapi 中使用 apscheduler 报错:

LookupError: No trigger by the name "interval" was found

解决办法:使用实例化的trigger

from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers import interval

scheduler = BackgroundScheduler()

trigger = interval.IntervalTrigger(seconds=3)
scheduler.add_job(lambda: job_func(ws), trigger=trigger, id='status_update_job', replace_existing=True)

另一个错误:

在我将定时任务逻辑封装到类中时,

           报错:Can't pickle coroutine objects when ProcessPoolExecutor is used in class

            原因是定时任务序列化保存时出错,必须使用静态方法:原文:python - Can't pickle coroutine objects when ProcessPoolExecutor is used in class - Stack Overflow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值