Discord.py 任务循环 运行 过于频繁且未完成
Discord.py Task Loop Running Too Often and Not Completing
我目前 运行遇到 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() 似乎永远不会完成,而且在任务似乎刚刚重新启动之前我从未到达打印语句。
在某些情况下,get_new_insider_buys() 是 returns 新内部人士购买列表的函数。该函数使用 BeautifulSoup 抓取网页并使用 Pandas Dataframe 操作一些数据,然后在返回列表之前将其写入本地文件。
get_new_insider_buys() 运行 本身是完美的,但是一旦我想将它放入 Discord.py 任务循环中,它似乎永远不会执行。
我感觉好像我在函数中发生了某种形式的并发或任务错误,尽管我不知道如何发生或为什么发生,而且我束手无策。我可以让其他任务工作得很好,但是一旦我将这个添加到混合中,它就会全部中断,我的所有任务都开始像这个一样。
我设法解决了我的问题。
它是我的 insider.get_new_insider_buys()
函数中 f = open("filepath", "w")
的副产品。我的文件路径有一个相对路径,而不是直接路径。我想 open() 处理这些的方式是不同的,结果我的程序出了问题。
我希望偶然发现这个的人不会头疼。
我目前 运行遇到 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() 似乎永远不会完成,而且在任务似乎刚刚重新启动之前我从未到达打印语句。
在某些情况下,get_new_insider_buys() 是 returns 新内部人士购买列表的函数。该函数使用 BeautifulSoup 抓取网页并使用 Pandas Dataframe 操作一些数据,然后在返回列表之前将其写入本地文件。
get_new_insider_buys() 运行 本身是完美的,但是一旦我想将它放入 Discord.py 任务循环中,它似乎永远不会执行。
我感觉好像我在函数中发生了某种形式的并发或任务错误,尽管我不知道如何发生或为什么发生,而且我束手无策。我可以让其他任务工作得很好,但是一旦我将这个添加到混合中,它就会全部中断,我的所有任务都开始像这个一样。
我设法解决了我的问题。
它是我的 insider.get_new_insider_buys()
函数中 f = open("filepath", "w")
的副产品。我的文件路径有一个相对路径,而不是直接路径。我想 open() 处理这些的方式是不同的,结果我的程序出了问题。
我希望偶然发现这个的人不会头疼。