我可能想多了,但我只是想要一个健全的检查:
我希望我的 slackbot 每分钟 ping 我的服务器
收到 404 后,它将停止 ping 服务器并向我发送消息以通知我服务器已关闭。
我会...有一个 setTimeOut 函数来发出请求并从那里处理错误/成功吗?
还是我错过了什么……?
谢谢!
是的,这称为健康检查。
通常你想要的是向你的服务器添加一个路由,比如/healthcheck
只返回一个 200 状态和空页面。无需无缘无故地每分钟请求一整套资产,从而使您的服务器超载。
然后正如你所说,类似:
setInterval(()=>{
checkStatus();
},60000);
function checkStatus(){
request.get(options,(err,res,body)=>{
if(res.statusCode!==200){
//handle statuscode error
}
});
}
您还可以使用 Google Stack Driver(不确定它是否免费)。它会在给定的时间间隔内从全球各地对您的服务器执行 ping 操作。您也可以将它与您的 slack 工作空间集成,并且堆栈驱动程序将像您的自定义 slack 机器人一样发布一条消息,只要它没有从您的服务器收到 200 OK。希望这有帮助!
除了使用自定义脚本来 ping 和发送消息,您还可以使用正常运行时间服务来监控您的机器人。有很多可供选择,有些甚至可以免费供小规模使用,例如 uptimerobot.com。我将它用于我所有的 Slack 机器人和应用程序,并且效果很好。