Răsfoiți Sursa

修复task的线程异常问题

龚成明 2 ani în urmă
părinte
comite
2318d3fdb6
1 a modificat fișierele cu 8 adăugiri și 3 ștergeri
  1. 8 3
      libs/task.js

+ 8 - 3
libs/task.js

@@ -1,5 +1,6 @@
 const LoggerKit = require('../kit/logger-kit')
 const log4js = require('log4js')
+const TimeKit = require('../kit/time-kit')
 
 class Task {
   context
@@ -7,6 +8,7 @@ class Task {
   name
   logger
   fileLogger
+  running = true
 
   constructor(taskName, delayTime, initFun, onTickFun) {
     this.name = taskName
@@ -42,17 +44,20 @@ class Task {
     await this.init()
 
     this.logger.info(`Dida dida dida, on tick, on tick...`)
-    this.interval = setInterval(async () => {
+
+    while (task.running) {
       try {
         await task.onTick()
       } catch (e) {
         task.fileLogger.error(e)
       }
-    }, this.delayTime)
+
+      await TimeKit.sleep(task.delayTime)
+    }
   }
 
   async Stop() {
-    clearInterval(this.interval)
+    this.running = false
   }
 }