Skip to main content

背景任务

在 0.2.6 版本之后,YiriMirai 新增了背景任务的功能。

背景任务是在 bot 启动时创建的一个异步 Task,并在 bot 关闭时自动结束。

Mirai 类提供了 add_background_task 方法来注册背景任务。

from mirai import Mirai

bot = Mirai(...)

@bot.add_background_task
async def background_task():
while True:
await asyncio.sleep(1)
print('background task')

利用这一功能,可以实现定时任务:

@bot.add_background_task()
async def timer():
today_finished = False # 设置变量标识今天是会否完成任务,防止重复发送
while True:
await asyncio.sleep(1)
now = datetime.datetime.now()
if now.hour == 7 and now.minute == 30 and not today_finished: # 每天早上 7:30 发送早安
await bot.send_group_message(12345678, "早安")
today_finished = True
if now.hour == 7 and now.minute == 31:
today_finished = False # 早上 7:31,重置今天是否完成任务的标识