【问题标题】:Checking if my discord bot is running via external program? - Python检查我的不和谐机器人是否通过外部程序运行? - Python
【发布时间】:2021-09-21 12:23:48
【问题描述】:

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

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

【问题讨论】:

    标签: python python-3.x monitoring monitor status


    【解决方案1】:

    您可以为您的机器人使用replit。上传文件,将您的机器人的主程序重命名为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() 调用之前。
    单击顶部的运行按钮。您应该会在屏幕右上角看到一个面板打开,上面写着“你好。我真的还活着!”。复制上面地址栏中的地址。然后将 UptimeRobot 监视器设置为指向该网站。

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

    【讨论】:

    • 我收到警告 WARNING: This is a development server. Do not use it in a production deployment.
    • 别担心,我用这个,忽略这个
    • @Razzer 这是因为 Flask 处于生产模式。因为你并没有真正提供任何(有用的)数据,只是“嗨,我真的还活着!”,你可以忽略这个。
    【解决方案2】:

    这取决于你如何托管 Discord Bot。

    最简单的方法可能是让 Web 服务器在某处运行,并让您的 Bot 每 X 分钟发送一次请求,让它知道它还活着。

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

    【讨论】:

    • 如何发送这样的请求,我的服务器如何接受?
    • 一个非常基本的方法可能是 Discord 机器人向 www.yourwebsite.com/updateDiscordBot.php 发出 GET 请求 在该页面上,您可以使用当前时间更新数据库。因此,无论何时访问它,该机器人都会被列为“活动”。然后在 www.yourwebsite.com/status.php 上检查数据库以查看机器人上次响应的时间,然后将其显示给用户。也可以将它与 UptimeRobot 结合使用。让 status.php 显示“Alive”,然后 UptimeRobot 检查 www.yourwebsite.com/status.php 寻找关键字“Alive”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-02
    • 2020-06-30
    • 2021-10-30
    • 2021-05-27
    • 2021-07-15
    • 2020-12-30
    相关资源
    最近更新 更多