首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何每两个小时循环一次事件不和Py?

如何每两个小时循环一次事件不和Py?
EN

Stack Overflow用户
提问于 2020-05-16 00:03:10
回答 2查看 219关注 0票数 0

我基本上想每2小时循环一次这个事件,这样机器人就会每2小时更换一次pfp,但是我找不到任何方法。我已经试过trask.loop了,但是我和那个混淆了

代码语言:javascript
运行
复制
pfp_pics = ["1","2","3","4","5","6","7"]
random_pfp = random.choice(pfp_pics)    
pfp_path = "pfp/{}.png".format(random_pfp)

fp = open(pfp_path, 'rb')
pfp = fp.read()

@client.event
async def on_ready():
    await client.user.edit(avatar=pfp)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-16 00:32:15

下面是一个使用任务循环的示例:

代码语言:javascript
运行
复制
async def my_task():
    cur_avatar = 0
    while True:
        prev_avatar = cur_avatar
        while cur_avatar == prev_avatar:
            cur_avatar = random.randint(0, 7) # ensure same avatar isn't picked
        pfp = open(f"pfp/{cur_avatar}.png", "rb").read()
        await client.user.edit(avatar=pfp)
        await asyncio.sleep(7200)

@client.event
async def on_ready():
    print("Ready!")
    client.loop.create_task(my_task())

参考资料:

票数 4
EN

Stack Overflow用户

发布于 2020-05-16 00:12:11

也许您可以设置一个每2小时调用一次python脚本的cron作业

trask循环是一个错误吗?在谷歌上什么都找不到。

我不太熟悉Discord.py是如何工作的,但是如果有事件循环,您可以轮询以检查两个小时是否已经结束。也就是说,将最后一个事件的时间保存到python脚本中的一个变量,或者保存到一个文件中,以及事件循环的每一次迭代中,检查datetime.now()是否传递了完成该事件的时间,如果已经过了,则执行该操作并更新最后一个事件的时间。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61830202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档