tasks.js 853 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. 'use strict';
  2. let utils;
  3. let tasks = {};
  4. let testTask = (callback) => {
  5. //Stuff
  6. console.log("Starting task");
  7. setTimeout(() => {
  8. console.log("Callback");
  9. callback();
  10. }, 10000);
  11. };
  12. module.exports = {
  13. init: function(cb) {
  14. utils = require('./utils');
  15. this.createTask("testTask", testTask, 5000);
  16. this.pauseTask("testTask");
  17. cb();
  18. },
  19. createTask: function(name, fn, timeout) {
  20. tasks[name] = {
  21. name,
  22. fn,
  23. timeout,
  24. lastRan: 0,
  25. timer: null
  26. };
  27. this.handleTask(tasks[name]);
  28. },
  29. pauseTask: (name) => {
  30. tasks[name].timer.pause();
  31. },
  32. resumeTask: (name) => {
  33. tasks[name].timer.resume();
  34. },
  35. handleTask: function(task) {
  36. if (task.timer) task.timer.pause();
  37. task.fn(() => {
  38. task.lastRan = Date.now();
  39. task.timer = new utils.Timer(() => {
  40. this.handleTask(task);
  41. }, task.timeout, false);
  42. });
  43. }
  44. };