Messenger Bot“睡眠模式”getaddrinfo
问题描述:
我得到了一个在nodejs(expressjs)中制作的机器人,并托管在我的私人VPS上,我遇到了一个使用superagent lib进行HTTP请求的错误。 当有不活动周期长,的NodeJS服务器就像是在“睡眠模式”,并且第一个请求总是夹在我的try/catch错误,错误是这样的:Messenger Bot“睡眠模式”getaddrinfo
我得到了另一个bot托管在heroku上,但我没有这个错误,它似乎也许是我的VPS/Apache代理?
第一次请求后,我做了一个新的请求后,它按预期工作。这就像我的服务器处于“睡眠模式”,第一个请求告诉他醒来。
感谢您的回答。
答
这是NodeJS应用程序的正常行为。为防止服务器在不活动后关闭应用程序,可以每x分钟(或几秒)执行一次ping请求,以保持您的bot活着。
您也可以使用.setTimeout()
函数。
server.setTimeout(10*60*1000);
来源:Nodejs and express server closes connection after 2 minutes
做一个ping请求每隔x分钟(或秒),让您的机器人活着。 – Jer
是的,它可能是一个解决方案,谢谢你的想法:) – Paul
但它是从一般的nodejs服务器的默认行为? – Paul