Discord.py任务循环运行过频繁且未完成

2024-06-01 06:14:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前遇到了Discord.py的一个问题,我有一个任务循环,它不断地重复,但实际上没有完成。下面是我的代码片段

import discord
from discord.ext import commands, tasks
import insider

@client.event
async def on_ready():
    print("Bot is Ready.")
    check_insider_activity.start()

@tasks.loop(minutes=5)
async def check_insider_activity():
    print("Checking Insider Buys")
    newBuys = insider.get_new_insider_buys()
    print(newBuys)

每当我运行代码时,输出如下:

Bot is ready.
Checking Insider Buys
Checking Insider Buys
Checking Insider Buys
Checking Insider Buys
Checking Insider Buys
Checking Insider Buys

它大约每隔一两秒钟发送一次“检查内幕交易”,并一直这样做直到我退出程序。函数get_new_insider_buys()似乎永远不会完成,而且在任务似乎刚刚重新启动之前,我也永远不会到达print语句

在某些上下文中,get_new_insider_buys()是一个函数,用于返回新内幕交易的列表。该函数使用BeautifulSoup刮取网页,并使用Pandas数据帧处理一些数据,然后在返回列表之前将其写入本地文件

get_new_insider_buys()本身运行得非常完美,但只要我想将其放入Discord.py任务循环,它似乎就永远不会执行

我感觉好像在函数中发生了某种形式的并发或任务错误,尽管我不知道如何或为什么,我已经不知所措了。我可以让其他任务正常工作,但一旦我将此任务添加到组合中,所有任务都会中断,我的所有任务都开始像此任务一样工作


Tags: 函数代码pyimportnewgettasksprint
1条回答
网友
1楼 · 发布于 2024-06-01 06:14:17

我设法解决了我的问题

这是我的insider.get_new_insider_buys()函数中f = open("filepath", "w")的副产品。我的文件路径有一个相对路径,而不是直接路径。我想open()处理这些问题的方式是不同的,因此我的程序被窃听了

我希望那些偶然发现这一点的人不要头痛

相关问题 更多 >