跳转至

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 导入 GraiaSchedulerBehaviourSchedulerSchema.

之后调用 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🔗

截止本文最后更新, SchedulerLaunart.current() 的支持仍然存在问题.

不过,我们可以这样做.

@channel.use(SchedulerSchema(timer=my_timer))
async def using_launart(app: Ariadne):
    launart = app.launch_manager
    interface = launart.get_interface(AwesomeInterface)

社区文档相关章节: 链接