首页 > 解决方案 > 有没有办法让网站显示长时间运行的 python 程序的正常运行时间和输出

问题描述

我有多个我为人们制作和托管的不和谐机器人。我希望在我的网站上创建一个页面,以在此页面上显示我的每个机器人的stdout,stderr和。uptime

每个机器人都在一个单独的“屏幕”中运行,该屏幕是使用提供的屏幕包创建的:在这里,如果需要, 我可以轻松地将stdoutandstderr传递给任何文件。

我正在运行 ubuntu 18.04,并且我个人拥有这台机器,所以我能用它做什么几乎没有限制。

我的python版本是:Python 3.6.4

如图所示,discord bot API 是 discord.py v1.4.1(重写):这里

v1.5.0 是新发布的,所以我正在等待更新它,在检查更新日志时我没有注意到任何可能影响这个项目的东西,所以应该没有问题

我不关心网站的布局,因为所有样式都将在以后完成,我只是想看看是否有一种方法可以获取上面指定的值并将它们放入网页中。我在 js 方面有一些经验,并且在理论知识方面很有经验,所以不知道如何在其中编码应该不是太大的问题(我希望)

我已经搜索了一段时间,但找不到任何解决方案。希望这里有人可以提供帮助:)

标签: pythonpython-3.xwebdiscord.py

解决方案


正常运行时间监控不是网站的直接功能discord.py,因为它会增加一整层的复杂性。

您可以编写自己的 HTTP Web 服务器来提供网站内容(即自己跟踪正常运行时间、停机时间等),但这可能最终会过于复杂。

如果您不希望这种极端复杂性,您可以使用 ⚒️ UptimeRobot(不是附属链接)为您创建状态页面。您所要做的就是在运行 Discord 机器人的同一台服务器上打开一个 HTTP 端点(最好在同一个进程中,也许是不同的线程),这样 UptimeRobot 就知道您的 Discord 机器人何时上线下线

要创建 HTTP 端点,您可以使用内置http.server模块,或 ️ Flask。请注意,为了让 UptimeRobot 与托管 Discord 机器人的服务器建立连接,需要进行端口转发。如果您无权访问网络,则可以使用 ngrok之类的服务公开公开服务器运行的端口。


上述所有服务都是免费的,不是附属链接。


推荐阅读