前段时间有个晓需求需用到定时任务,由于在同服务器上部署的是Sanic服务,因此就想在sanic框架上使用定时任务。
根据sanic官方给出的文档:
# 定时任务函数
async def taskFunc(app):
while True:
await asyncio.sleep(3)
# 执行SQL语句
sql_str = "SELECT * FROM Students"
res = await sanicdb.query(sql_str )
# 处理返回结果
print(res)
# 启动
app.add_task(taskFunc(app))
使用根据实际测试,使用
await asyncio.sleep(3)
代码可以实现每隔XX时间开展XXX任务,但是对于每天X点做什么任务这种不适用。
在python下常规使用APScheduler定时框架,做定时任务,因此尝试把sanic和APScheduler结合使用。经过实践测试,通过以下代码可以实现两者结合的定时任务:
# 定时任务函数 ,此处可以是async。也可以不是异步函数
async def theTaskFun():
logger.info(f'测试新增每日定时任务!')
# 具体函数功能
# -------------------------------------------------
from apscheduler.schedulers.blocking import BlockingScheduler
async def taskJob(app):
while True:
sched = BlockingScheduler()
# 每十分钟执行一次任务
sched.add_job(th

本文介绍如何在Sanic框架中使用APScheduler实现定时任务。包括每十分钟执行一次的任务及每天特定时间点的任务。
最低0.47元/天 解锁文章
898

被折叠的 条评论
为什么被折叠?



