我正在尝试创建一个Python Discord机器人,每X秒检查活跃成员并奖励在线时间的积分。我正在使用asyncio处理聊天命令,这一切都在运作。我的问题是找到一种异步方式,以便每隔X秒计划检查活动成员。
我已阅读过asyncio文档,但这是我第一次使用它,我很难理解任务、循环、协程等方面的内容。
@client.event
async def on_message(message):
# !gamble command
if message.content.startswith('!gamble'):
...code that works....
# !help command
elif message.content == '!help':
...code that works....
# !balance command
elif message.content == '!balance':
...code that works....
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
# Do this every X seconds to give online users +1 points
async def periodic_task():
TODO
我的目标是让机器人能够通过聊天处理给定的命令,同时每隔 X 秒触发一个与 Discord 服务器中聊天命令或事件无关的函数。我知道如何使函数内的代码实现我的目标,但不知道如何触发它。
do_stuff_periodically
在稍后停止? - Jack Deeth