index.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // const event = require('myevents');
  2. //
  3. //
  4. // let taskList_proxy = new Proxy({}, {
  5. // set: function(target, key, value, receiver) {
  6. // let bol = Reflect.set(target, key, value, receiver);
  7. // event.emit('task_num_change');
  8. // return bol;
  9. // },
  10. // deleteProperty: function(target, propKey) {
  11. // let bol = Reflect.deleteProperty(target, propKey);
  12. // event.emit('task_num_change');
  13. // return bol;
  14. // }
  15. // });
  16. //
  17. // module.exports = {
  18. // downloadingTasks: taskList_proxy,
  19. // stopDownloadTasks: {},
  20. // };
  21. const event = require('myevents');
  22. let taskList = {},
  23. QUEUE_STATUS = true //全局任务状态 , 0 可以进行下一个任务;
  24. module.exports = {
  25. add: function (task) {
  26. if (taskList[task._id]) {
  27. return false;
  28. }
  29. taskList[task._id] = task;
  30. return true;
  31. },
  32. remove: function (_id) {
  33. taskList[_id] = null;
  34. delete taskList[_id];
  35. },
  36. clear: function name(params) {
  37. taskList = {};
  38. },
  39. find: function (_id) {
  40. return taskList[_id];
  41. },
  42. list: function () {
  43. return taskList;
  44. },
  45. stopAll: function () {
  46. QUEUE_STATUS = false;
  47. },
  48. startAll: function () {
  49. QUEUE_STATUS = true;
  50. },
  51. get queue_status() {
  52. return QUEUE_STATUS;
  53. },
  54. get taskNum() {
  55. return Object.keys(taskList).length;
  56. }
  57. };