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)
社区文档相关章节: 链接