在 repl.it 上保持 Discord Bot 在线

Posted

技术标签:

【中文标题】在 repl.it 上保持 Discord Bot 在线【英文标题】:Keep Discord Bot online on repl.it 【发布时间】:2019-07-10 09:07:27 【问题描述】:

如何将repl.it 用于我的 Python Discord Bot,并使其 24/7 全天候运行。 我曾经使用keep_alive,但由于某种原因它停止工作。

有人有什么建议吗?

我在控制台中不断收到此错误:

172.18.0.1 - - [16/Feb/2019 11:25:10] "GET / HTTP/1.1" 200 -

【问题讨论】:

这不是错误信息,on the contrary,表示成功 repl.it 真的允许你运行一个无限运行时间的程序吗?它们并不是真正的托管服务。 【参考方案1】:

要让您的 repl.it 机器人 24/7 在线,您必须做 3 件事:

    保持机器人活着 添加后台任务 将您的 repl.it 机器人与 uptime 机器人链接

1.为了让我们的机器人保持活力,我们必须在 py 文件的头部添加以下代码:

from flask import Flask
from threading import Thread

app = Flask('')

@app.route('/')
def main():
  return "Your Bot Is Ready"

def run():
  app.run(host="0.0.0.0", port=8000)

def keep_alive():
  server = Thread(target=run)
  server.start()

2。添加后台任务:

status = cycle(['with Python','JetHub'])

@bot.event
async def on_ready():
  change_status.start()
  print("Your bot is ready")

@tasks.loop(seconds=10)
async def change_status():
  await bot.change_presence(activity=discord.Game(next(status)))

3.设置Uptime Robot:

在 uptime 机器人上创建一个帐户。 创建帐户后,转到仪表板并单击添加新监视器 选择监视器类型 Http(s) 然后转到你在 repl.it 上的项目并从控制台顶部复制 url 并将其粘贴到监视器的 url 部分 现在将监控间隔设置为每 5 分钟一次(以便它每 5 分钟 ping 一次机器人)并单击两次创建监控器 就是这样……现在转到您在 repl.it 上的项目并点击“运行”按钮

如果你在 discord.js 中制作了你的不和谐机器人,我写了一篇关于它的中型文章:Host a Discord Bot 24/7 Online for FREE!

【讨论】:

函数keep_alive和run没有被调用,你需要怎么做才能使服务器在线 如果像我这样的人不知道,可以使用以下命令导入任务:from discord.ext import tasks 我还必须将“bot”替换为“client”,因为它似乎有这个名字在我受互联网启发的代码中。

以上是关于在 repl.it 上保持 Discord Bot 在线的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 数据库使用 repl.it

从用户中删除角色,然后将它们添加回 Discord.py(使用 Repl.it)

如何在“on message”中实现关机和重启命令?

Repl.it 环境秘密变量是 None 类型

我如何获得由 discord bot maker 创建的 Discord Bot 在 Heroku 上工作

Discord.js bot 没有上线由 Heroku 托管