client.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. const web = require('./src/web')
  2. const config = require('./src/config')
  3. const interval = require('./src/Interval')
  4. const robot = require('./src/robot')
  5. const {getRustConfig} = require("./src/config");
  6. const {logger} = require("./src/utils/logger");
  7. const {exec} = require("child_process");
  8. try {
  9. // 开机前做一次,清除确保环境干净(删除可能遗留的as程序)
  10. robot.closeAppAll()
  11. // 配置环境
  12. config.init()
  13. // 启动web
  14. web.init()
  15. // 定时任务
  16. interval.init()
  17. } catch (e) {
  18. logger.error(e.stack)
  19. logger.error(e)
  20. }
  21. //node关机前的一些操作
  22. // 当进程即将退出时执行一些操作
  23. process.on('exit', (code) => {
  24. logger.info(`即将退出,退出码:${code}`);
  25. // 在这里执行清理工作
  26. });
  27. // 监听SIGINT信号(例如用户按下Ctrl+C)
  28. process.on('SIGINT', () => {
  29. logger.info('收到SIGINT信号,准备退出...');
  30. // 在这里执行清理工作
  31. process.exit(); // 这将触发exit事件
  32. });
  33. // 监听SIGTERM信号(通常是系统请求进程终止)
  34. process.on('SIGTERM', async () => {
  35. logger.info('收到SIGTERM信号,准备退出...');
  36. logger.info('关机前的一些操作...');
  37. // 关机前为了防止 node 更新,需要吧map 里面的pid 写在本地文件
  38. await robot.closeAppAll()
  39. logger.info('自我关闭~~...');
  40. // 在这里执行清理工作
  41. process.exit(); // 这将触发exit事件
  42. });
  43. // 还可以处理未捕获的异常
  44. process.on('uncaughtException', (err) => {
  45. // logger.error('捕获到未处理的异常1:', err.message);
  46. // logger.info('捕获到未处理的异常2:', err.message);
  47. // 记录错误消息和堆栈
  48. logger.error('捕获到未处理的异常:', err.message); // 记录错误信息
  49. logger.error('错误堆栈:', err.stack); // 记录错误堆栈
  50. // 可选: 记录其他上下文信息
  51. // 例如,您可以添加时间戳、请求信息等
  52. // 记录异常的详细信息
  53. logger.info('捕获到未处理的异常:', JSON.stringify({
  54. timestamp: new Date(),
  55. error: err.message,
  56. stack: err.stack
  57. }, null, 2)); // 使用 JSON.stringify 格式化输出
  58. // 在这里执行清理工作
  59. process.exit(1); // 非零退出码表示异常退出
  60. });