const robot = require('./robot') const web = require('./web') const {logger} = require("./utils/logger"); /******* * 定时任务 * **** */ function init() { reportNodeStatus() reportDel() reportStatus() reportAmount() logger.info('--定时任务 启动'); } function reportNodeStatus() { const intervalInMilliseconds = 5000; setInterval(() => { // logger.info('当前1',robot.appMap); web.robotNodeStatus() }, intervalInMilliseconds); } //定时清理机器人 function reportDel() { const intervalInMilliseconds = 2000; setInterval(() => { // logger.info('当前1',robot.appMap); robot.appMap.forEach((value, key) => { if (value.id !== -1) { // logger.info(`清理没用机器人开始111!`,value); robot.delRobot(value) } }); }, intervalInMilliseconds); } // 5秒扫描本机所有机器人状态,进行上报 function reportStatus() { const intervalInMilliseconds = 5000; setInterval(() => { robot.appMap.forEach((value, key) => { // logger.info('当前',robot.appMap); if (value.id !== -1 && value.threadStatus !== robot.RobotStatus.STOPPED) { robot.robotStatus(value) } }); }, intervalInMilliseconds); } // 2秒一次对正在运行的,服务器进行余额比对,发生变化则上报 function reportAmount() { // 设置定时器,每隔一定时间(比如每隔5秒)发送一次GET请求 const intervalInMilliseconds = 2000; setInterval(() => { // logger.info('当前2',robot.appMap); robot.appMap.forEach((value, key) => { var thisTime = new Date().getTime() if (value.threadStatus === robot.RobotStatus.RUNNING && (thisTime - value.threadStartTime) > (1000 * 10) ) { robot.robotAmount(value) } }); }, intervalInMilliseconds); } module.exports = { init };