Interval.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. const robot = require('./robot')
  2. const web = require('./web')
  3. const {logger} = require("./utils/logger");
  4. /*******
  5. * 定时任务
  6. * **** */
  7. function init() {
  8. reportNodeStatus()
  9. reportDel()
  10. reportStatus()
  11. reportAmount()
  12. logger.info('--定时任务 启动');
  13. }
  14. function reportNodeStatus() {
  15. const intervalInMilliseconds = 5000;
  16. setInterval(() => {
  17. // logger.info('当前1',robot.appMap);
  18. web.robotNodeStatus()
  19. }, intervalInMilliseconds);
  20. }
  21. //定时清理机器人
  22. function reportDel() {
  23. const intervalInMilliseconds = 2000;
  24. setInterval(() => {
  25. // logger.info('当前1',robot.appMap);
  26. robot.appMap.forEach((value, key) => {
  27. if (value.id !== -1) {
  28. // logger.info(`清理没用机器人开始111!`,value);
  29. robot.delRobot(value)
  30. }
  31. });
  32. }, intervalInMilliseconds);
  33. }
  34. // 5秒扫描本机所有机器人状态,进行上报
  35. function reportStatus() {
  36. const intervalInMilliseconds = 5000;
  37. setInterval(() => {
  38. robot.appMap.forEach((value, key) => {
  39. // logger.info('当前',robot.appMap);
  40. if (value.id !== -1 && value.threadStatus !== robot.RobotStatus.STOPPED) {
  41. robot.robotStatus(value)
  42. }
  43. });
  44. }, intervalInMilliseconds);
  45. }
  46. // 2秒一次对正在运行的,服务器进行余额比对,发生变化则上报
  47. function reportAmount() {
  48. // 设置定时器,每隔一定时间(比如每隔5秒)发送一次GET请求
  49. const intervalInMilliseconds = 2000;
  50. setInterval(() => {
  51. // logger.info('当前2',robot.appMap);
  52. robot.appMap.forEach((value, key) => {
  53. var thisTime = new Date().getTime()
  54. if (value.threadStatus === robot.RobotStatus.RUNNING &&
  55. (thisTime - value.threadStartTime) > (1000 * 10)
  56. ) {
  57. robot.robotAmount(value)
  58. }
  59. });
  60. }, intervalInMilliseconds);
  61. }
  62. module.exports = {
  63. init
  64. };