我是靠谱客的博主 大意花生,最近开发中收集的这篇文章主要介绍node心跳代码示例,接口超时未被调用,则发出提示,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

实际应用场景

前端定时调用后端接口,若超时未调用,则向企业微信发送一条消息。

代码示例

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心跳代码示例,接口超时未被调用,则发出提示所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部