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

如何实现Discord 24小时电台机器人自动每小时重启?

实现Discord机器人每小时自动重启的JavaScript方案

核心思路

利用Node.js的定时任务API触发进程退出,依赖托管服务商的自动重启机制(大多数Node.js托管平台会在进程退出后自动重新拉起应用)。同时在重启前正确关闭Discord客户端连接,避免资源泄漏。

修改后的完整代码

const Discord = require("discord.js");
const client = new Discord.Client();
const url = 'https://sc.creacast.com/topmusic_strasbourg'; 
const GUILDID = ''; 
const CHANNELID = '';
// 设置每小时重启(3600000毫秒 = 1小时)
const RESTART_INTERVAL = 3600000;

client.on('ready', async () => {
  console.log('机器人已上线');
  // 启动定时重启任务
  setInterval(() => {
    console.log('准备重启机器人...');
    // 先关闭Discord客户端连接
    client.destroy()
      .then(() => {
        // 退出进程,触发托管平台自动重启
        process.exit(0);
      })
      .catch(err => {
        console.error('关闭客户端出错:', err);
        process.exit(1);
      });
  }, RESTART_INTERVAL);

  voiceStay(GUILDID, CHANNELID);
});

function voiceStay(guildid, channelid) {
  if (!guildid) throw new Error('服务器ID错误');
  if (!channelid) throw new Error('语音频道ID错误');
  
  const guild = client.guilds.cache.get(guildid);
  const voiceChannel = guild?.channels.cache.get(channelid);
  
  if (!voiceChannel) {
    console.log('未找到指定语音频道');
    return;
  }

  voiceChannel.join()
    .then(connection => {
      const dispatcher = connection.play(url);
      // 监听播放错误,出错时自动重启(可选,比固定重启更智能)
      dispatcher.on('error', err => {
        console.error('电台播放出错:', err);
        process.exit(1);
      });
      // 监听连接断开,尝试重新连接
      connection.on('disconnect', () => {
        console.log('语音连接断开,尝试重新连接');
        voiceStay(guildid, channelid);
      });
    })
    .catch(err => {
      console.error('加入语音频道出错:', err);
    });
}

client.login("你的Bot Token");

关键说明

  • 定时重启逻辑:通过setInterval每小时执行一次重启流程,先调用client.destroy()关闭Discord连接,再用process.exit()退出进程,托管平台会自动重启应用。
  • 错误监听优化:新增了播放错误和连接断开的监听,当电台播放出现问题时自动触发重启,比固定时间重启更贴合实际故障场景。
  • 注意事项:请确认你的托管服务商支持进程自动重启(大部分平台默认支持),如果不支持,固定定时重启的方案无法生效,需要联系服务商开启该功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:41:02