| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- class Task {
- context
- delayTime
- name
- logger
- constructor(taskName, delayTime, initFun, onTickFun) {
- this.name = taskName
- this.delayTime = delayTime
- this.init = initFun
- this.onTick = onTickFun
- this.loggerInit()
- }
- loggerInit() {
- this.logger = require('log4js').getLogger(this.name)
- this.logger.level = 'debug'
- }
- async Start() {
- const task = this
- this.logger.info(`Init context or others.`)
- await this.init()
- this.logger.info(`Dida dida dida, on tick, on tick...`)
- this.interval = setInterval(async () => {
- try {
- await task.onTick()
- } catch (e) {
- this.logger.error(e)
- }
- }, this.delayTime)
- }
- async Stop() {
- clearInterval(this.interval)
- }
- }
- module.exports = Task
|