我正在尝试在heroku上部署一个不和谐的bot。 工作大约1-2分钟,然后出现错误:
2020-08-10T10:05:17.228802+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2020-08-10T10:05:17.246146+00:00 heroku[web.1]: Stopping process with SIGKILL
2020-08-10T10:05:17.307500+00:00 heroku[web.1]: Process exited with status 137
2020-08-10T10:05:17.347445+00:00 heroku[web.1]: State changed from starting to crashed
(完整日志):
2020-08-10T10:04:19.372794+00:00 app[web.1]:
2020-08-10T10:04:19.372804+00:00 app[web.1]: > arepee-bot@1.0.0 start /app
2020-08-10T10:04:19.372804+00:00 app[web.1]: > node index.js
2020-08-10T10:04:19.372804+00:00 app[web.1]:
2020-08-10T10:04:20.468443+00:00 app[web.1]: Bot [welcomeMessage.js] is ready!
2020-08-10T10:04:30.643838+00:00 app[web.1]: Bot [index.js] is ready!
2020-08-10T10:05:17.228802+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2020-08-10T10:05:17.246146+00:00 heroku[web.1]: Stopping process with SIGKILL
2020-08-10T10:05:17.307500+00:00 heroku[web.1]: Process exited with status 137
2020-08-10T10:05:17.347445+00:00 heroku[web.1]: State changed from starting to crashed
start
中的package.json
命令为:node index.js
Procfile是:
worker: node index.js
和index.js
是:
const Discord = require("discord.js")
const client = new Discord.Client()
const welcomeMessage = require("./welcomeMessage")
client.on("ready", () => {
console.log("Bot [index.js] is ready!")
})
client.login(process.env.TOKEN)
我还有另一个文件welcomeMessage
:
const Discord = require("discord.js")
const client = new Discord.Client()
client.on("ready", () => {
console.log("Bot [welcomeMessage.js] is ready!")
})
client.on('guildMemberAdd', member => {
let welcomeChannel = client.channels.cache.get('0000000000000')
welcomeChannel.send("hello world")
})
client.login(process.env.TOKEN)
是什么原因导致这个问题?
答案 0 :(得分:1)
老兄,我以某种方式在这里做了,第一次有一次随机尝试对我有用,我真高兴!看,我希望它也对您有用。首先,请查看您的“ package.json
”文件,其中必须包含:
"scripts": {
},
您应该在其中放置“ start" : "node index.js
”(即使“脚本”中已经有其他东西,但不要删除其他内容,只需添加此内容即可),就像这样:
"scripts": {
"start": "node index.js",
},
然后转到您的Procfile,将“ worker : node index.js
”更改为“ worker npm start
”(之所以尝试,是因为我注意到只有web在运行,并且其命令是“ web npm start”)< / p>
应该可以解决问题了!
我非常确定这是为我解决的问题,现在它正在不停地运行,但是如果还没有解决,我还在终端上使用了一些命令,这些命令是:“ heroku run worker
”,还有“ heroku ps:scale worker=1
”。
我希望它能对您有所帮助,因为有其他错误,我已经连续8个小时尝试使其正常工作,而且我知道这件事情不起作用有多烦人。
不好意思:您还需要做其他人之前说过的话:
“((...),您需要禁用Web dyno并启用worker dyno”。
PS:我知道您已经做了开始,我只是在想是否有人在没有此信息的情况下到达这里,也许会有所帮助。
答案 1 :(得分:0)
原来,您需要禁用Web dyno并启用worker dyno。