概述
实际应用场景
前端定时调用后端接口,若超时未调用,则向企业微信发送一条消息。
代码示例
var request = require('request'); // 用于发送http请求
var timeOld = new Date().getTime(); // 记录上次请求的时间
var flag = true; // 超时是否只提示一次的标志变量
// 向企业微信发送信息
function sendToQiyeWechat(msg) {
request.post(
{
url: 'http://xxx.xxxx.xx/xx' // 企业微信报警接口,这个可以根据自己的需求去编写,参见(https://work.weixin.qq.com/api/doc#90000/90003/90487)
form: {
'Touser': '',
'Toparty': '',
'Msg': msg
}
}, function (err, httpRes) {
if (err) {
logger.info("err:", err)
} else {
logger.info("Send Successful.")
}
})
};
// 心跳机制,每分钟检查一次接口是否超时未被调用
setInterval(function () {
var timeNow = new Date().getTime(); // 获取当前时间
var duration = timeNow - timeOld; // 请求时间间隔(当前时间 - 上次请求时间)
if (duration > 10*60000 && flag) { // 如果距离上次请求超过了10分钟,接口未被调用
flag = false; // 保证每次只发送一次提示,如果要多次提示,请删去该语句即可
var msg = '超时未被调用';
sendToQiyeWechat(msg) // 向企业微信提示信息
}
}, 60000);
/**
* @function web端请求接口
* @param req 请求
* @param res 响应
* @param next
*/
exports.webRequest = function(req, res, next) {
flag = true; // 每次请求到来则重新置为真
req = req.body; // 获取前端传值
var msg = ''; // 提示信息
var code = parseInt(req.code); // 获取传来的标志码
if (code === 200) {
msg = 'success'
} else {
msg = 'fail'
}
timeOld = new Date().getTime(); // 重写全局变量timeOld(请求时间)
sendToQiyeWechat(msg) // 向企业微信提示信息
};
最后
以上就是大意花生为你收集整理的node心跳代码示例,接口超时未被调用,则发出提示的全部内容,希望文章能够帮你解决node心跳代码示例,接口超时未被调用,则发出提示所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复