timer.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. const Job = require('ee-core/module/jobs/baseJobClass');
  2. const Loader = require('ee-core/module/loader');
  3. const Log = require('ee-core/module/log');
  4. const Ps = require('ee-core/module/ps');
  5. const Message = require('ee-core/module/message');
  6. const Hello = Loader.requireJobsModule('./example/hello');
  7. /**
  8. * example - TimerJob
  9. * @class
  10. */
  11. class TimerJob extends Job {
  12. constructor(params) {
  13. super();
  14. this.params = params;
  15. }
  16. /**
  17. * handle()方法是必要的,且会被自动调用
  18. */
  19. async handle () {
  20. Log.info("[child-process] TimerJob params: ", this.params);
  21. // 计时器任务
  22. let childMessage = Message.childMessage;
  23. let eventName = 'job-timer-progress';
  24. let number = 0;
  25. let jobId = this.params.jobId;
  26. setInterval(function() {
  27. Hello.welcome();
  28. childMessage.sendToMain(eventName, {jobId, number});
  29. number++;
  30. }, 1000);
  31. // 用 setTimeout 模拟任务运行时长
  32. // 任务完成后,必须调用 Ps.exit() 方法,让进程退出,否则会常驻内存
  33. setTimeout(function(){
  34. Ps.exit(1);
  35. }, 15 * 1000)
  36. }
  37. }
  38. TimerJob.toString = () => '[class TimerJob]';
  39. module.exports = TimerJob;