|
|
@@ -1,8 +1,8 @@
|
|
|
const logger = require('../kit/logger-kit')
|
|
|
-const TimeKit = require('../kit/time-kit')
|
|
|
|
|
|
module.exports = class Task {
|
|
|
- constructor(delayTime, initFun, onTickFun) {
|
|
|
+ constructor(context, delayTime, initFun, onTickFun) {
|
|
|
+ this.context = context
|
|
|
this.delayTime = delayTime
|
|
|
|
|
|
this.init = initFun
|
|
|
@@ -10,16 +10,20 @@ module.exports = class Task {
|
|
|
}
|
|
|
|
|
|
async Start() {
|
|
|
+ const task = this
|
|
|
+
|
|
|
await this.init()
|
|
|
|
|
|
- while (true) {
|
|
|
+ this.interval = setInterval(() => {
|
|
|
try {
|
|
|
- await this.onTick()
|
|
|
-
|
|
|
- await TimeKit.sleep(this.delayTime)
|
|
|
+ task.onTick(task.context)
|
|
|
} catch (e) {
|
|
|
- logger.log(e)
|
|
|
+ logger.error(e)
|
|
|
}
|
|
|
- }
|
|
|
+ }, this.delayTime)
|
|
|
+ }
|
|
|
+
|
|
|
+ async Stop() {
|
|
|
+ clearInterval(this.interval)
|
|
|
}
|
|
|
}
|