Scheduler - 任务计划器🔗
Scheduler 支持了轻量的定时任务, 并与 Graia Broadcast 紧密结合.
开始使用🔗
首先, 我们需要先部署环境, 执行指令:
pip install graia-scheduler
或者使用 poetry:
poetry add graia-scheduler
之后在你的主程序中添加:
from graia.scheduler import GraiaScheduler
scheduler = GraiaScheduler(loop=broadcast.loop, broadcast=broadcast)
我们就可以开始了.
提示
你也可以通过 Ariadne.create 快速创建 GraiaScheduler.
app: Ariadne = Ariadne(...)
scheduler = Ariadne.create(GraiaScheduler)
直接使用🔗
使用 scheduler.schedule(timer) 包装函数.
默认并不会传入任何可用参数, 你需要在函数运行时手动获取, 或者通过 Dispatcher 获取参数.
timer 可以从 graia.scheduler.timers 导入, 有多种风格.
timer 的行为可以通过其 文档字符串 获知, 这里就不再赘述.
使用 Saya🔗
从 graia.scheduler.saya 导入 GraiaSchedulerBehaviour 与 SchedulerSchema.
之后调用 saya.install_behaviours(GraiaSchedulerBehaviour(scheduler)).
在模块的 channel.use 中, 使用 SchedulerSchema 即可.
提示
如果你之前使用 Ariadne.create 创建了 GraiaScheduler, 你也可以用 Ariadne.create 创建 GraiaSchedulerBehaviour.
@channel.use(SchedulerSchema(timer=my_timer))
async def scheduled_func():
...
使用 Launart🔗
截止本文最后更新, Scheduler 对 Launart.current() 的支持仍然存在问题.
不过,我们可以这样做.
@channel.use(SchedulerSchema(timer=my_timer))
async def using_launart(app: Ariadne):
launart = app.launch_manager
interface = launart.get_interface(AwesomeInterface)
社区文档相关章节: 链接