检查我的discord bot是否通过外部程序运行?python

2024-05-16 06:40:37 发布

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

我想为我的discord bot创建一个状态页面,让其他用户查看我的bot当前是否正在运行或是否处于脱机状态。我用UpTimeRobot来表示。但是我看到检查我的bot是否正在运行的唯一选项是HTTP(s)KeywordPingPort。所以我现在的问题是,如果我的机器人通过以下四种方法之一在线,uptimerobot如何检查?哪种方法最简单?我需要做什么才能让它发挥作用

我尝试了很多不同的搜索方法,但都找不到解决方案


Tags: 方法用户httpport状态bot选项机器人
2条回答

这取决于您如何托管Discord机器人

最简单的方法可能是让web服务器在某处运行,让您的机器人每隔X分钟发送一个请求,让它知道它仍然处于活动状态

在四个选项中:HTTP、关键字、Ping和端口-HTTP可能是最简单的,但您甚至可能不需要UpTimeRobot(取决于您希望状态页面的外观)。但这需要您在同一系统上运行Web服务器和Discord Bot。有关更多详细信息,请参见此answer

您可以将replit用于bot。上载文件,将bot的主程序重命名为main.py,然后将其添加到新的空白文件(将文件命名为keep_alive):

from flask import Flask
from threading import Thread
app = Flask("")
@app.route("/")
def home():
    return "Hello. I am really alive!"
def run():
    app.run(host="0.0.0.0",port=8080)
def keep_alive():
    t = Thread(target=run)
    t.start()

添加行

import keep_alive
keep_alive.keep_alive()

就在client.run()调用之前。
点击顶部的run按钮。你会看到屏幕右上角有一个面板打开,上面写着“你好,我还活着!”。复制上面地址栏中的地址。然后将UptimeRobot监视器设置为指向该网站

注意:此方法是完全免费的。您不需要付费版本的replit帐户。虽然它说在您关闭浏览器选项卡后机器人将停止,但实际上它在网络不活动1小时后关闭。只要UptimeRobot的ping间隔小于1小时,您就可以了。

相关问题 更多 >