You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Replit上的Discord Bot保持在线?新手技术求助

问题解决:Replit部署Discord Bot关闭后离线的问题

核心问题

你的keep_alive()调用放在了bot.run_discord_bot()之后,而Discord Bot的run方法是阻塞式的——它会持续占用主线程,永远不会执行到后面的keep_alive(),这就是保活代码无效的根本原因。


分步解决方法

1. 调整代码执行顺序

修改main.py的主函数部分,先启动保活服务,再运行机器人:

if __name__ == '__main__':
  check_verion()
  keep_alive()  # 先启动Flask保活服务
  bot.run_discord_bot()  # 再运行机器人(阻塞调用)

2. 确保Flask依赖已安装

检查你的requirements.txt,如果没有flask依赖,添加一行:

flask==2.3.3

(版本号可使用最新稳定版)

3. Replit项目配置(付费用户)

  • 打开项目的「Settings」(设置)
  • 找到「Always On」(始终运行)选项并开启,Replit会维持项目后台运行

4. 免费用户替代方案

免费用户无法开启「Always On」,需要用外部监控工具定时请求你的Flask服务:

  • 启动项目后,复制Replit提供的外部访问URL(格式类似https://你的项目名.你的用户名.repl.co)
  • 使用UptimeRobot等工具,设置每5分钟请求一次该URL,防止Replit自动休眠项目

额外验证点

  • 确认keep_alive.py位于src文件夹下,和bot.py同级,保证导入路径正确
  • 启动项目后,访问Replit的外部URL,能看到"I'm alive"则说明Flask服务正常运行

内容的提问来源于stack exchange,提问作者Jaser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 22:30:32