Python Discord 机器人停止进程

Python Discord bot stops process

我正在制作一个不和谐的机器人,它表现得很有趣,出于某种原因,在几个随机小时后它就停止执行其主要功能,即:

async def get_data():
while True:
    global data
    global data_1
    data_1 = data
    geting_data = opener.open(f"{api_url}{theme}/?selections={selection}&key={api_key}").read()
    data = json.loads(getting_data)
    await asyncio.sleep(30.1)

@bot.event
async def on_ready():
   print("ready")
   await get_data()

我希望 get_data 永远 运行。 (它托管在 heroku 上)该机器人在线并且正在工作,但 get_data 在某个时候被卡住了,我必须手动重置 Heroku 上的机器人以使其正常工作。 我也在寻找一个可以通过 Discord 命令手动重启它的命令(类似于

@bot.command()
    async def restart(ctx):
    get_data.terminate
    await get_data()

一段时间后自动关闭进程的代码或程序中是否有原因? 你能帮我重新启动命令吗?

为什么不在 运行 命令读取文件时?

你可以尝试用“bot.loop.create_task(get_data())”代替“await get_data()” 或使用“线程”

import time 
import threading
def get_data():
    global data
    global data_1
    while True:
        data_1 = data
        geting_data = opener.open(f"{api_url}{theme}/?selections={selection}&key={api_key}").read()
        data = json.loads(getting_data)
        time.sleep(30.1)

threading.Thread(target=get_data()).start()