@resolveio/server-lib 12.7.18 → 12.7.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -130,8 +130,8 @@ var CronManager = /** @class */ (function () {
130
130
  if (!this.doesCronJobExist(cron)) {
131
131
  this._cronManager.add(cron.name, cron.time_to_run, function () { return _this.runCronJob(cron); }, null, true, cron.timezone, null, false);
132
132
  var nextDate = new Date(this._cronManager.getJob(cron.name).nextDate()['ts']);
133
- if (cron.running || !cron.next_run || nextDate.getTime() !== cron.next_run.getTime()) {
134
- cron_job_collection_1.CronJobs.updateOne({ _id: cron._id }, { $set: { running: false, next_run: nextDate } });
133
+ if (cron.running || !cron.next_run || (nextDate && nextDate.getTime() !== cron.next_run.getTime())) {
134
+ cron_job_collection_1.CronJobs.updateOne({ _id: cron._id }, { $set: { running: false, next_run: nextDate || null } });
135
135
  }
136
136
  }
137
137
  };
@@ -140,8 +140,8 @@ var CronManager = /** @class */ (function () {
140
140
  if (this.doesCronJobExist(cron)) {
141
141
  this._cronManager.update(cron.name, cron.time_to_run, function () { return _this.runCronJob(cron); }, null, true, cron.timezone);
142
142
  var nextDate = new Date(this._cronManager.getJob(cron.name).nextDate()['ts']);
143
- if (cron.running || !cron.next_run || nextDate.getTime() !== cron.next_run.getTime()) {
144
- cron_job_collection_1.CronJobs.updateOne({ _id: cron._id }, { $set: { running: false, next_run: nextDate } });
143
+ if (cron.running || !cron.next_run || (nextDate && nextDate.getTime() !== cron.next_run.getTime())) {
144
+ cron_job_collection_1.CronJobs.updateOne({ _id: cron._id }, { $set: { running: false, next_run: nextDate || null } });
145
145
  }
146
146
  }
147
147
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/managers/cron.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,0EAA8D;AAE9D,qCAA8C;AAG9C,0FAA8E;AAC9E,2DAA8D;AAG9D;IAMC,qBAAY,UAAU;QAFd,UAAK,GAAmB,EAAE,CAAC;QAGlC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAc,EAAE,CAAC;QAEzC,IAAI,CAAC,UAAU,EAAE,CAAC;IACnB,CAAC;IAEY,gCAAU,GAAvB;;;;gBACC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;oBACnD,8BAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAA,GAAG;wBACvB,KAAI,CAAC,KAAK,GAAG,GAAG,CAAC;wBAEjB,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAA,GAAG;4BACrB,KAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;wBACtB,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC;oBAEH,IAAI,CAAC,YAAY,GAAG,8BAAQ,CAAC,eAAe,CAAC,EAAE,EAAE,EAAC,YAAY,EAAE,cAAc,EAAC,CAAC,CAAC;oBAEjF,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAO,GAAuC;;;4BAC5E,IAAI,GAAG,CAAC,aAAa,KAAK,QAAQ,EAAE;gCACnC,IAAI,GAAG,CAAC,YAAY,EAAE;oCACrB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAG,KAAU,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,EAArC,CAAqC,CAAC,EAAE;wCACjE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;qCAClC;oCAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;iCAClC;6BACD;iCACI,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,GAAG,CAAC,aAAa,KAAK,QAAQ,EAAE;gCAC3E,IAAI,GAAG,CAAC,YAAY,EAAE;oCACrB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAG,KAAU,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,EAArC,CAAqC,CAAC,EAAE;wCAChE,GAAG,CAAC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;wCACjC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC,OAAO,CAAM,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;wCACxG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;qCACrC;yCACI;wCACJ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;wCAClC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;qCAClC;iCACD;qCACI;oCACJ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAG,KAAU,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,EAArC,CAAqC,CAAC,EAAE;wCAC5D,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAG,KAAU,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,EAArC,CAAqC,CAAC,CAAC,CAAC,CAAC,CAAC;wCAC3E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wCAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC,OAAO,CAAM,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;qCACtF;iCACD;6BACD;iCACI,IAAI,GAAG,CAAC,aAAa,KAAK,QAAQ,EAAE;gCACxC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAG,KAAW,GAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAvC,CAAuC,CAAC,EAAE;oCAC9D,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAG,KAAU,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,EAArC,CAAqC,CAAC,CAAC,CAAC,CAAC,CAAC;oCAC3E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oCAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAC,OAAO,CAAM,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iCACtF;6BACD;;;yBACD,CAAC;yBACD,EAAE,CAAC,OAAO,EAAE,UAAC,GAAG;wBAChB,KAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;oBAC3B,CAAC,CAAC;yBACD,EAAE,CAAC,KAAK,EAAE;wBACV,KAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;oBAC3B,CAAC,CAAC;yBACD,EAAE,CAAC,OAAO,EAAE;wBACZ,KAAI,CAAC,YAAY,GAAG,IAAI,CAAC;wBACzB,KAAI,CAAC,UAAU,EAAE,CAAC;oBACnB,CAAC,CAAC,CAAC;iBACH;qBACI;oBACJ,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;iBAC1B;;;;KACD;IAEO,sCAAgB,GAAxB,UAAyB,IAAkB;QAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAEO,0CAAoB,GAA5B,UAA6B,SAAiB;QAC7C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAEO,gCAAU,GAAlB,UAAmB,IAAkB;QAArC,iBAmBC;QAlBA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;YACjC,IAAI,CAAC,YAAY,CAAC,GAAG,CACpB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,cAAM,OAAA,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAArB,CAAqB,EAC3B,IAAI,EACJ,IAAI,EACJ,IAAI,CAAC,QAAQ,EACb,IAAI,EACJ,KAAK,CACL,CAAC;YAEF,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAE7E,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE;gBACrF,8BAAQ,CAAC,SAAS,CAAC,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAE,EAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAC,EAAC,CAAC,CAAC;aAClF;SACD;IACF,CAAC;IAEO,mCAAa,GAArB,UAAsB,IAAkB;QAAxC,iBAUC;QATA,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;YAChC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,cAAM,OAAA,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAArB,CAAqB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE9G,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAE7E,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE;gBACrF,8BAAQ,CAAC,SAAS,CAAC,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAE,EAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAC,EAAC,CAAC,CAAC;aAClF;SACD;IACF,CAAC;IAEO,mCAAa,GAArB,UAAsB,SAAiB;QACtC,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE;YACzC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACpC;IACF,CAAC;IAEO,kCAAY,GAApB,UAAqB,IAAkB;QACtC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;YAChC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnC;IACF,CAAC;IAEO,iCAAW,GAAnB,UAAoB,IAAkB;QACrC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;YAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClC;IACF,CAAC;IAEO,qCAAe,GAAvB;QACC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,gCAAU,GAAlB,UAAmB,IAAkB;QAArC,iBAgFC;QA/EA,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE;YAE/D,8BAAQ,CAAC,gBAAgB,CAAC;gBACzB,IAAI,EAAE;oBACL,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAC;oBACf,EAAC,OAAO,EAAE,KAAK,EAAC;oBAChB;wBACC,GAAG,EAAE;4BACJ,EAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,KAAK,EAAC,EAAC;4BAC5B,EAAC,QAAQ,EAAE,IAAI,EAAC;4BAChB,EAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,EAAC;yBACvB;qBACD;iBACD;aACD,EAAE,EAAC,IAAI,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,EAAC,CAAC,CAAC,IAAI,CAAC,UAAM,GAAG;;;;;iCACrC,GAAG,EAAH,yBAAG;4BACF,WAAW,GAAwB;gCACtC,GAAG,EAAE,IAAA,iCAAiB,GAAE;gCACxB,IAAI,EAAE,GAAG,CAAC,IAAI;gCACd,UAAU,EAAE,GAAG,CAAC,MAAM;gCACtB,WAAW,EAAE,GAAG,CAAC,WAAW;gCAC5B,WAAW,EAAE,GAAG,CAAC,UAAU;gCAC3B,UAAU,EAAE,GAAG,CAAC,GAAG;gCACnB,cAAc,EAAE,IAAI;gCACpB,MAAM,EAAE,IAAI;gCACZ,KAAK,EAAE,EAAE;gCACT,cAAc,EAAE,IAAI,CAAC,QAAQ;gCAC7B,UAAU,EAAE,IAAI,IAAI,EAAE;gCACtB,QAAQ,EAAE,IAAI;gCACd,SAAS,EAAE,IAAI;6BACf,CAAC;4BAEF,qBAAM,8CAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAA;;4BAA1C,SAA0C,CAAC;;;;iCAGtC,GAAG,CAAC,eAAe,EAAnB,wBAAmB;4BACtB,qBAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,eAAe,CAAC,EAAA;;4BAA7F,SAA6F,CAAC;;gCAI9F,qBAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAA;;4BAAxE,SAAwE,CAAC;;;iCAGtE,GAAG,CAAC,eAAe,EAAnB,yBAAmB;iCAClB,GAAG,CAAC,oBAAoB,EAAxB,wBAAwB;4BAC3B,qBAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,oBAAoB,CAAC,EAAA;;4BAAvG,SAAuG,CAAC;;gCAGxG,qBAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,EAAA;;4BAA7E,SAA6E,CAAC;;;;;4BAKhF,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,KAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;4BACpE,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;4BACjD,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC;;;4BAG5B,IAAI,GAAG,CAAC,MAAM,EAAE;gCACX,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gCAC7E,WAAW,CAAC,SAAS,GAAG,QAAQ,CAAC;gCACjC,8BAAQ,CAAC,SAAS,CAAC,EAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAE,EAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAC,EAAC,CAAC,CAAC;6BACjF;iCACI;gCACJ,8BAAQ,CAAC,SAAS,CAAC,EAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAC,CAAC,CAAC;6BACnC;4BAED,8CAAgB,CAAC,SAAS,CAAC,EAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAE;oCACzD,cAAc,EAAE,KAAK;oCACrB,MAAM,EAAE,WAAW,CAAC,MAAM;oCAC1B,KAAK,EAAE,WAAW,CAAC,KAAK;oCACxB,QAAQ,EAAE,IAAI,IAAI,EAAE;oCACpB,SAAS,EAAE,WAAW,CAAC,SAAS;iCAChC,EAAC,CAAC,CAAC;;;;;iBAEL,EAAE,cAAO,CAAC,CAAC,CAAC;SACb;IACF,CAAC;IACF,kBAAC;AAAD,CA/NA,AA+NC,IAAA;AA/NY,kCAAW","file":"cron.manager.js","sourcesContent":["import { CronJobModel } from '../models/cron-job.model';\nimport { CronJobs } from '../collections/cron-job.collection';\nimport ResolveIOMainServer from '../server-app';\nimport { CronJobManager } from '../cron/cron';\nimport * as moment from 'moment';\nimport { ChangeStream, ChangeStreamDocument } from 'mongodb';\nimport { CronJobHistories } from '../collections/cron-job-history.collection';\nimport { objectIdHexString } from '../managers/mongo.manager';\nimport { CronJobHistoryModel } from '../models/cron-job-history.model';\n\nexport class CronManager {\n\tprivate _cronManager: CronJobManager;\n\tprivate _mainServer: ResolveIOMainServer;\n\tprivate _watchCrons$: ChangeStream;\n\tprivate _jobs: CronJobModel[] = [];\n\n\tconstructor(mainServer) {\n\t\tthis._mainServer = mainServer;\n\t\tthis._cronManager = new CronJobManager();\n\n\t\tthis.watchCrons();\n\t}\n\n\tpublic async watchCrons() {\n\t\tif (!this._watchCrons$ || this._watchCrons$.closed) {\n\t\t\tCronJobs.find().then(res => {\n\t\t\t\tthis._jobs = res;\n\n\t\t\t\tthis._jobs.forEach(job => {\n\t\t\t\t\tthis.addCronJob(job);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tthis._watchCrons$ = CronJobs.watchCollection([], {fullDocument: 'updateLookup'});\n\n\t\t\tthis._watchCrons$.on('change', async (doc: ChangeStreamDocument<CronJobModel>) => {\n\t\t\t\tif (doc.operationType === 'insert') {\n\t\t\t\t\tif (doc.fullDocument) {\n\t\t\t\t\t\tif (!this._jobs.some(a => a._id === <any>doc.documentKey['_id'])) {\n\t\t\t\t\t\t\tthis._jobs.push(doc.fullDocument);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.addCronJob(doc.fullDocument);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (doc.operationType === 'replace' || doc.operationType === 'update') {\n\t\t\t\t\tif (doc.fullDocument) {\n\t\t\t\t\t\tif (this._jobs.some(a => a._id === <any>doc.documentKey['_id'])) {\n\t\t\t\t\t\t\tdoc.fullDocument.next_run = null;\n\t\t\t\t\t\t\tthis._jobs.splice(this._jobs.map(a => a._id).indexOf(<any>doc.documentKey['_id']), 1, doc.fullDocument);\n\t\t\t\t\t\t\tthis.updateCronJob(doc.fullDocument);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis._jobs.push(doc.fullDocument);\n\t\t\t\t\t\t\tthis.addCronJob(doc.fullDocument);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (this._jobs.some(a => a._id === <any>doc.documentKey['_id'])) {\n\t\t\t\t\t\t\tlet job = this._jobs.filter(a => a._id === <any>doc.documentKey['_id'])[0];\n\t\t\t\t\t\t\tthis.removeCronJob(job.name);\n\t\t\t\t\t\t\tthis._jobs.splice(this._jobs.map(a => a._id).indexOf(<any>doc.documentKey['_id']), 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (doc.operationType === 'delete') {\n\t\t\t\t\tif (this._jobs.some(a => a._id === (<any>doc).documentKey['_id'])) {\n\t\t\t\t\t\tlet job = this._jobs.filter(a => a._id === <any>doc.documentKey['_id'])[0];\n\t\t\t\t\t\tthis.removeCronJob(job.name);\n\t\t\t\t\t\tthis._jobs.splice(this._jobs.map(a => a._id).indexOf(<any>doc.documentKey['_id']), 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('error', (err) => {\n\t\t\t\tthis._watchCrons$.close();\n\t\t\t})\n\t\t\t.on('end', () => {\n\t\t\t\tthis._watchCrons$.close();\n\t\t\t})\n\t\t\t.on('close', () => {\n\t\t\t\tthis._watchCrons$ = null;\n\t\t\t\tthis.watchCrons();\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tthis._watchCrons$.close();\n\t\t}\n\t}\n\n\tprivate doesCronJobExist(cron: CronJobModel) {\n\t\treturn this._cronManager.exists(cron.name);\n\t}\n\n\tprivate doesCronJobNameExist(cron_name: string) {\n\t\treturn this._cronManager.exists(cron_name);\n\t}\n\n\tprivate addCronJob(cron: CronJobModel) {\n\t\tif (!this.doesCronJobExist(cron)) {\n\t\t\tthis._cronManager.add(\n\t\t\t\tcron.name,\n\t\t\t\tcron.time_to_run,\n\t\t\t\t() => this.runCronJob(cron),\n\t\t\t\tnull,\n\t\t\t\ttrue,\n\t\t\t\tcron.timezone,\n\t\t\t\tnull, \n\t\t\t\tfalse\n\t\t\t);\n\n\t\t\tlet nextDate = new Date(this._cronManager.getJob(cron.name).nextDate()['ts'])\n\n\t\t\tif (cron.running || !cron.next_run || nextDate.getTime() !== cron.next_run.getTime()) {\n\t\t\t\tCronJobs.updateOne({_id: cron._id}, {$set: {running: false, next_run: nextDate}});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate updateCronJob(cron: CronJobModel) {\n\t\tif (this.doesCronJobExist(cron)) {\n\t\t\tthis._cronManager.update(cron.name, cron.time_to_run, () => this.runCronJob(cron), null, true, cron.timezone);\n\t\t\t\n\t\t\tlet nextDate = new Date(this._cronManager.getJob(cron.name).nextDate()['ts'])\n\n\t\t\tif (cron.running || !cron.next_run || nextDate.getTime() !== cron.next_run.getTime()) {\n\t\t\t\tCronJobs.updateOne({_id: cron._id}, {$set: {running: false, next_run: nextDate}});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate removeCronJob(cron_name: string) {\n\t\tif (this.doesCronJobNameExist(cron_name)) {\n\t\t\tthis._cronManager.delete(cron_name);\n\t\t}\n\t}\n\n\tprivate startCronJob(cron: CronJobModel) {\n\t\tif (this.doesCronJobExist(cron)) {\n\t\t\tthis._cronManager.start(cron.name);\n\t\t}\n\t}\n\n\tprivate stopCronJob(cron: CronJobModel) {\n\t\tif (this.doesCronJobExist(cron)) {\n\t\t\tthis._cronManager.stop(cron.name);\n\t\t}\n\t}\n\n\tprivate stopAllCronJobs() {\n\t\tthis._cronManager.stopAll();\n\t}\n\n\tprivate runCronJob(cron: CronJobModel) {\n\t\tlet now = new Date();\n\n\t\tif (!cron.next_run || now.getTime() >= cron.next_run.getTime()) {\n\n\t\t\tCronJobs.findOneAndUpdate({\n\t\t\t\t$and: [\n\t\t\t\t\t{_id: cron._id},\n\t\t\t\t\t{running: false},\n\t\t\t\t\t{\n\t\t\t\t\t\t$or: [\n\t\t\t\t\t\t\t{next_run: {$exists: false}},\n\t\t\t\t\t\t\t{next_run: null},\n\t\t\t\t\t\t\t{next_run: {$lte: now}}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}, {$set: {running: true}}).then(async res => {\n\t\t\t\tif (res) {\n\t\t\t\t\tlet cronHistory: CronJobHistoryModel = {\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\tname: res.name,\n\t\t\t\t\t\treoccuring: res.repeat,\n\t\t\t\t\t\ttime_to_run: res.time_to_run,\n\t\t\t\t\t\tmethod_name: res.method_run,\n\t\t\t\t\t\tid_cronjob: res._id,\n\t\t\t\t\t\tserver_restart: true,\n\t\t\t\t\t\tpassed: true,\n\t\t\t\t\t\terror: '',\n\t\t\t\t\t\tdate_scheduled: cron.next_run,\n\t\t\t\t\t\tdate_start: new Date(),\n\t\t\t\t\t\tdate_end: null,\n\t\t\t\t\t\tdate_next: null\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\tawait CronJobHistories.create(cronHistory);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif (res.method_run_data) {\n\t\t\t\t\t\t\tawait this._mainServer.getMethodManager().callMethodCron(res.method_run, res.method_run_data);\t\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tawait this._mainServer.getMethodManager().callMethodCron(res.method_run);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (res.method_complete) {\n\t\t\t\t\t\t\tif (res.method_complete_data) {\n\t\t\t\t\t\t\t\tawait this._mainServer.getMethodManager().callMethodCron(res.method_complete, res.method_complete_data);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tawait this._mainServer.getMethodManager().callMethodCron(res.method_complete);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\tconsole.log(new Date(), 'Cron Error', JSON.stringify(err, null, 2));\n\t\t\t\t\t\tcronHistory.error = JSON.stringify(err, null, 2);\n\t\t\t\t\t\tcronHistory.passed = false;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (res.repeat) {\n\t\t\t\t\t\tlet nextDate = new Date(this._cronManager.getJob(res.name).nextDate()['ts']);\n\t\t\t\t\t\tcronHistory.date_next = nextDate;\n\t\t\t\t\t\tCronJobs.updateOne({_id: res._id}, {$set: {running: false, next_run: nextDate}});\n\t\t\t\t\t} \n\t\t\t\t\telse {\n\t\t\t\t\t\tCronJobs.deleteOne({_id: res._id});\n\t\t\t\t\t}\n\n\t\t\t\t\tCronJobHistories.updateOne({_id: cronHistory._id}, {$set: {\n\t\t\t\t\t\tserver_restart: false,\n\t\t\t\t\t\tpassed: cronHistory.passed,\n\t\t\t\t\t\terror: cronHistory.error,\n\t\t\t\t\t\tdate_end: new Date(),\n\t\t\t\t\t\tdate_next: cronHistory.date_next\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}, () => {});\n\t\t}\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/managers/cron.manager.ts"],"names":[],"mappings":"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","file":"cron.manager.js","sourcesContent":["import { CronJobModel } from '../models/cron-job.model';\nimport { CronJobs } from '../collections/cron-job.collection';\nimport ResolveIOMainServer from '../server-app';\nimport { CronJobManager } from '../cron/cron';\nimport * as moment from 'moment';\nimport { ChangeStream, ChangeStreamDocument } from 'mongodb';\nimport { CronJobHistories } from '../collections/cron-job-history.collection';\nimport { objectIdHexString } from '../managers/mongo.manager';\nimport { CronJobHistoryModel } from '../models/cron-job-history.model';\n\nexport class CronManager {\n\tprivate _cronManager: CronJobManager;\n\tprivate _mainServer: ResolveIOMainServer;\n\tprivate _watchCrons$: ChangeStream;\n\tprivate _jobs: CronJobModel[] = [];\n\n\tconstructor(mainServer) {\n\t\tthis._mainServer = mainServer;\n\t\tthis._cronManager = new CronJobManager();\n\n\t\tthis.watchCrons();\n\t}\n\n\tpublic async watchCrons() {\n\t\tif (!this._watchCrons$ || this._watchCrons$.closed) {\n\t\t\tCronJobs.find().then(res => {\n\t\t\t\tthis._jobs = res;\n\n\t\t\t\tthis._jobs.forEach(job => {\n\t\t\t\t\tthis.addCronJob(job);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tthis._watchCrons$ = CronJobs.watchCollection([], {fullDocument: 'updateLookup'});\n\n\t\t\tthis._watchCrons$.on('change', async (doc: ChangeStreamDocument<CronJobModel>) => {\n\t\t\t\tif (doc.operationType === 'insert') {\n\t\t\t\t\tif (doc.fullDocument) {\n\t\t\t\t\t\tif (!this._jobs.some(a => a._id === <any>doc.documentKey['_id'])) {\n\t\t\t\t\t\t\tthis._jobs.push(doc.fullDocument);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.addCronJob(doc.fullDocument);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (doc.operationType === 'replace' || doc.operationType === 'update') {\n\t\t\t\t\tif (doc.fullDocument) {\n\t\t\t\t\t\tif (this._jobs.some(a => a._id === <any>doc.documentKey['_id'])) {\n\t\t\t\t\t\t\tdoc.fullDocument.next_run = null;\n\t\t\t\t\t\t\tthis._jobs.splice(this._jobs.map(a => a._id).indexOf(<any>doc.documentKey['_id']), 1, doc.fullDocument);\n\t\t\t\t\t\t\tthis.updateCronJob(doc.fullDocument);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis._jobs.push(doc.fullDocument);\n\t\t\t\t\t\t\tthis.addCronJob(doc.fullDocument);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (this._jobs.some(a => a._id === <any>doc.documentKey['_id'])) {\n\t\t\t\t\t\t\tlet job = this._jobs.filter(a => a._id === <any>doc.documentKey['_id'])[0];\n\t\t\t\t\t\t\tthis.removeCronJob(job.name);\n\t\t\t\t\t\t\tthis._jobs.splice(this._jobs.map(a => a._id).indexOf(<any>doc.documentKey['_id']), 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (doc.operationType === 'delete') {\n\t\t\t\t\tif (this._jobs.some(a => a._id === (<any>doc).documentKey['_id'])) {\n\t\t\t\t\t\tlet job = this._jobs.filter(a => a._id === <any>doc.documentKey['_id'])[0];\n\t\t\t\t\t\tthis.removeCronJob(job.name);\n\t\t\t\t\t\tthis._jobs.splice(this._jobs.map(a => a._id).indexOf(<any>doc.documentKey['_id']), 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('error', (err) => {\n\t\t\t\tthis._watchCrons$.close();\n\t\t\t})\n\t\t\t.on('end', () => {\n\t\t\t\tthis._watchCrons$.close();\n\t\t\t})\n\t\t\t.on('close', () => {\n\t\t\t\tthis._watchCrons$ = null;\n\t\t\t\tthis.watchCrons();\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tthis._watchCrons$.close();\n\t\t}\n\t}\n\n\tprivate doesCronJobExist(cron: CronJobModel) {\n\t\treturn this._cronManager.exists(cron.name);\n\t}\n\n\tprivate doesCronJobNameExist(cron_name: string) {\n\t\treturn this._cronManager.exists(cron_name);\n\t}\n\n\tprivate addCronJob(cron: CronJobModel) {\n\t\tif (!this.doesCronJobExist(cron)) {\n\t\t\tthis._cronManager.add(\n\t\t\t\tcron.name,\n\t\t\t\tcron.time_to_run,\n\t\t\t\t() => this.runCronJob(cron),\n\t\t\t\tnull,\n\t\t\t\ttrue,\n\t\t\t\tcron.timezone,\n\t\t\t\tnull, \n\t\t\t\tfalse\n\t\t\t);\n\n\t\t\tlet nextDate = new Date(this._cronManager.getJob(cron.name).nextDate()['ts'])\n\n\t\t\tif (cron.running || !cron.next_run || (nextDate && nextDate.getTime() !== cron.next_run.getTime())) {\n\t\t\t\tCronJobs.updateOne({_id: cron._id}, {$set: {running: false, next_run: nextDate || null}});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate updateCronJob(cron: CronJobModel) {\n\t\tif (this.doesCronJobExist(cron)) {\n\t\t\tthis._cronManager.update(cron.name, cron.time_to_run, () => this.runCronJob(cron), null, true, cron.timezone);\n\t\t\t\n\t\t\tlet nextDate = new Date(this._cronManager.getJob(cron.name).nextDate()['ts'])\n\n\t\t\tif (cron.running || !cron.next_run || (nextDate && nextDate.getTime() !== cron.next_run.getTime())) {\n\t\t\t\tCronJobs.updateOne({_id: cron._id}, {$set: {running: false, next_run: nextDate || null}});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate removeCronJob(cron_name: string) {\n\t\tif (this.doesCronJobNameExist(cron_name)) {\n\t\t\tthis._cronManager.delete(cron_name);\n\t\t}\n\t}\n\n\tprivate startCronJob(cron: CronJobModel) {\n\t\tif (this.doesCronJobExist(cron)) {\n\t\t\tthis._cronManager.start(cron.name);\n\t\t}\n\t}\n\n\tprivate stopCronJob(cron: CronJobModel) {\n\t\tif (this.doesCronJobExist(cron)) {\n\t\t\tthis._cronManager.stop(cron.name);\n\t\t}\n\t}\n\n\tprivate stopAllCronJobs() {\n\t\tthis._cronManager.stopAll();\n\t}\n\n\tprivate runCronJob(cron: CronJobModel) {\n\t\tlet now = new Date();\n\n\t\tif (!cron.next_run || now.getTime() >= cron.next_run.getTime()) {\n\n\t\t\tCronJobs.findOneAndUpdate({\n\t\t\t\t$and: [\n\t\t\t\t\t{_id: cron._id},\n\t\t\t\t\t{running: false},\n\t\t\t\t\t{\n\t\t\t\t\t\t$or: [\n\t\t\t\t\t\t\t{next_run: {$exists: false}},\n\t\t\t\t\t\t\t{next_run: null},\n\t\t\t\t\t\t\t{next_run: {$lte: now}}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}, {$set: {running: true}}).then(async res => {\n\t\t\t\tif (res) {\n\t\t\t\t\tlet cronHistory: CronJobHistoryModel = {\n\t\t\t\t\t\t_id: objectIdHexString(),\n\t\t\t\t\t\tname: res.name,\n\t\t\t\t\t\treoccuring: res.repeat,\n\t\t\t\t\t\ttime_to_run: res.time_to_run,\n\t\t\t\t\t\tmethod_name: res.method_run,\n\t\t\t\t\t\tid_cronjob: res._id,\n\t\t\t\t\t\tserver_restart: true,\n\t\t\t\t\t\tpassed: true,\n\t\t\t\t\t\terror: '',\n\t\t\t\t\t\tdate_scheduled: cron.next_run,\n\t\t\t\t\t\tdate_start: new Date(),\n\t\t\t\t\t\tdate_end: null,\n\t\t\t\t\t\tdate_next: null\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\tawait CronJobHistories.create(cronHistory);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif (res.method_run_data) {\n\t\t\t\t\t\t\tawait this._mainServer.getMethodManager().callMethodCron(res.method_run, res.method_run_data);\t\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tawait this._mainServer.getMethodManager().callMethodCron(res.method_run);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (res.method_complete) {\n\t\t\t\t\t\t\tif (res.method_complete_data) {\n\t\t\t\t\t\t\t\tawait this._mainServer.getMethodManager().callMethodCron(res.method_complete, res.method_complete_data);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tawait this._mainServer.getMethodManager().callMethodCron(res.method_complete);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\tconsole.log(new Date(), 'Cron Error', JSON.stringify(err, null, 2));\n\t\t\t\t\t\tcronHistory.error = JSON.stringify(err, null, 2);\n\t\t\t\t\t\tcronHistory.passed = false;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (res.repeat) {\n\t\t\t\t\t\tlet nextDate = new Date(this._cronManager.getJob(res.name).nextDate()['ts']);\n\t\t\t\t\t\tcronHistory.date_next = nextDate;\n\t\t\t\t\t\tCronJobs.updateOne({_id: res._id}, {$set: {running: false, next_run: nextDate}});\n\t\t\t\t\t} \n\t\t\t\t\telse {\n\t\t\t\t\t\tCronJobs.deleteOne({_id: res._id});\n\t\t\t\t\t}\n\n\t\t\t\t\tCronJobHistories.updateOne({_id: cronHistory._id}, {$set: {\n\t\t\t\t\t\tserver_restart: false,\n\t\t\t\t\t\tpassed: cronHistory.passed,\n\t\t\t\t\t\terror: cronHistory.error,\n\t\t\t\t\t\tdate_end: new Date(),\n\t\t\t\t\t\tdate_next: cronHistory.date_next\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}, () => {});\n\t\t}\n\t}\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resolveio/server-lib",
3
- "version": "12.7.18",
3
+ "version": "12.7.19",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "package": "./build_package.sh",