Small Bree based job runner + gui
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

index.js 1023B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. const defs = [
  2. require("./setup"),
  3. require("./heartbeat")
  4. ]
  5. class Job {
  6. constructor({ jobName, timeout, interval }) {
  7. this.name = jobName
  8. this.timeout = timeout
  9. this.interval = interval
  10. }
  11. }
  12. class JobFactory {
  13. constructor() {
  14. this.jobs = []
  15. this.addJobsFromDefs({ defs })
  16. }
  17. /**
  18. * Force using of Job objects for validating
  19. */
  20. createJob({ jobName, timeout, interval }) {
  21. return new Job({ jobName, timeout, interval })
  22. }
  23. /**
  24. * Only store the job if it is
  25. * a valid Job instance
  26. */
  27. addJobFromDef(jobDef) {
  28. const job = this.createJob(jobDef)
  29. if (job) {
  30. this.jobs.push(job)
  31. }
  32. }
  33. /**
  34. * Take in job definitions from accompanying
  35. * job files. Job files must include and
  36. * execute a jobRun()
  37. */
  38. addJobsFromDefs({ defs }) {
  39. defs.forEach(def => this.addJobFromDef(def))
  40. }
  41. }
  42. const jobFactory = new JobFactory()
  43. module.exports = jobFactory