bullmq 5.40.2 → 5.40.4

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.
@@ -14,7 +14,7 @@ class JobScheduler extends queue_base_1.QueueBase {
14
14
  (opts.settings && opts.settings.repeatStrategy) || exports.defaultRepeatStrategy;
15
15
  }
16
16
  async upsertJobScheduler(jobSchedulerId, repeatOpts, jobName, jobData, opts, { override, producerId }) {
17
- const { every, pattern, offset } = repeatOpts;
17
+ const { every, limit, pattern, offset } = repeatOpts;
18
18
  if (pattern && every) {
19
19
  throw new Error('Both .pattern and .every options are defined for this repeatable job');
20
20
  }
@@ -76,6 +76,7 @@ class JobScheduler extends queue_base_1.QueueBase {
76
76
  name: jobName,
77
77
  endDate: endDate ? new Date(endDate).getTime() : undefined,
78
78
  tz: repeatOpts.tz,
79
+ limit,
79
80
  pattern,
80
81
  every,
81
82
  });
@@ -146,13 +147,35 @@ class JobScheduler extends queue_base_1.QueueBase {
146
147
  }
147
148
  async transformSchedulerData(key, jobData, next) {
148
149
  if (jobData) {
149
- return Object.assign(Object.assign({ key, name: jobData.name, endDate: parseInt(jobData.endDate) || null, tz: jobData.tz || null, pattern: jobData.pattern || null, every: jobData.every || null }, (jobData.data || jobData.opts
150
- ? {
151
- template: this.getTemplateFromJSON(jobData.data, jobData.opts),
152
- }
153
- : {})), { next });
150
+ const jobSchedulerData = {
151
+ key,
152
+ name: jobData.name,
153
+ next,
154
+ };
155
+ if (jobData.limit) {
156
+ jobSchedulerData.limit = parseInt(jobData.limit);
157
+ }
158
+ if (jobData.endDate) {
159
+ jobSchedulerData.endDate = parseInt(jobData.endDate);
160
+ }
161
+ if (jobData.tz) {
162
+ jobSchedulerData.tz = jobData.tz;
163
+ }
164
+ if (jobData.pattern) {
165
+ jobSchedulerData.pattern = jobData.pattern;
166
+ }
167
+ if (jobData.every) {
168
+ jobSchedulerData.every = jobData.every;
169
+ }
170
+ if (jobData.data || jobData.opts) {
171
+ jobSchedulerData.template = this.getTemplateFromJSON(jobData.data, jobData.opts);
172
+ }
173
+ return jobSchedulerData;
174
+ }
175
+ // TODO: remove this check and keyToData as it is here only to support legacy code
176
+ if (key.includes(':')) {
177
+ return this.keyToData(key, next);
154
178
  }
155
- return this.keyToData(key, next);
156
179
  }
157
180
  keyToData(key, next) {
158
181
  const data = key.split(':');
@@ -1 +1 @@
1
- {"version":3,"file":"job-scheduler.js","sourceRoot":"","sources":["../../../src/classes/job-scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job-scheduler.js","sourceRoot":"","sources":["../../../src/classes/job-scheduler.ts"],"names":[],"mappings":";;;;AAAA,6CAA8C;AAa9C,+BAA4B;AAC5B,6CAAyC;AAEzC,oCAAyD;AACzD,oCAAqC;AAErC,MAAa,YAAa,SAAQ,sBAAS;IAGzC,YACE,IAAY,EACZ,IAAuB,EACvB,UAAmC;QAEnC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAE9B,IAAI,CAAC,cAAc;YACjB,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,6BAAqB,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,cAAsB,EACtB,UAAqD,EACrD,OAAU,EACV,OAAU,EACV,IAAiC,EACjC,EAAE,QAAQ,EAAE,UAAU,EAA8C;QAEpE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QAErD,IAAI,OAAO,IAAI,KAAK,EAAE;YACpB,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;SACH;QAED,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE;YACtB,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;SACH;QAED,IAAI,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,SAAS,EAAE;YAClD,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;SACH;QAED,IAAI,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,KAAK,EAAE;YAC9C,OAAO,CAAC,IAAI,CACV,0GAA0G,CAC3G,CAAC;SACH;QAED,mEAAmE;QACnE,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IACE,OAAO,UAAU,CAAC,KAAK,KAAK,WAAW;YACvC,cAAc,GAAG,UAAU,CAAC,KAAK,EACjC;YACA,OAAO;SACR;QAED,yDAAyD;QACzD,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACrB,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;QAC/B,IAAI,CAAC,CAAC,OAAO,OAAO,KAAK,SAAS,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,OAAQ,CAAC,CAAC,OAAO,EAAE,EAAE;YACzE,OAAO;SACR;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QACxC,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;QAE1C,uDAAuD;QACvD,MAAM,EAAE,SAAS,EAAE,WAAW,KAA4B,UAAU,EAAjC,kBAAkB,kBAAK,UAAU,EAA9D,4BAAiD,CAAa,CAAC;QACrE,IAAI,WAAW,GAAG,GAAG,CAAC;QACtB,IAAI,SAAS,EAAE;YACb,WAAW,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YAC5C,WAAW,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;SACrD;QAED,IAAI,UAAkB,CAAC;QACvB,IAAI,SAAS,GAAG,MAAM,IAAI,CAAC,CAAC;QAE5B,IAAI,KAAK,EAAE;YACT,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;YACzD,MAAM,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;YAClC,IAAI,UAAU,IAAI,MAAM,EAAE;gBACxB,UAAU,GAAG,QAAQ,CAAC;aACvB;iBAAM;gBACL,UAAU,GAAG,QAAQ,CAAC;gBACtB,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;gBAEnC,uEAAuE;gBACvE,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aAC3C;SACF;aAAM,IAAI,OAAO,EAAE;YAClB,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAEjE,IAAI,UAAU,GAAG,GAAG,EAAE;gBACpB,UAAU,GAAG,GAAG,CAAC;aAClB;SACF;QAED,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1C,IAAI,UAAU,EAAE;YACd,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,OAAO,CAAC,eAAe,CAChB,KAAqB,EAC/B,cAAc,EACd,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAC7D,SAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EACpB;oBACE,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS;oBAC1D,EAAE,EAAE,UAAU,CAAC,EAAE;oBACjB,KAAK;oBACL,OAAO;oBACP,KAAK;iBACN,CACF,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAC7B,KAAqB,EAC/B,cAAc,EACd,UAAU,CACX,CAAC;aACH;YAED,OAAO,IAAI,CAAC,KAAK,CACf,gBAAQ,CAAC,QAAQ,EACjB,KAAK,EACL,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,EACzB,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE;;gBACrC,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAE/B,IAAI,sBAAsB,EAAE;oBAC1B,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,SAAS,0CAAE,WAAW,CAAC;oBAChD,MAAM,iBAAiB,GACrB,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,QAAQ;wBACxB,CAAC,CAAC,WAAW,IAAI,sBAAsB,CAAC,CAAC;oBAE3C,IAAI,iBAAiB,IAAI,WAAW,EAAE;wBACpC,SAAS,GAAG;4BACV,QAAQ,EAAE,iBAAiB;4BAC3B,WAAW;yBACZ,CAAC;qBACH;iBACF;gBAED,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAClB,KAAqB,EAC/B,OAAO,EACP,UAAU,EACV,SAAS,EACT,cAAc,kCAET,IAAI,KACP,MAAM,kCAAO,kBAAkB,KAAE,MAAM,EAAE,SAAS,KAClD,SAAS,KAEX,OAAO,EACP,cAAc,EACd,UAAU,CACX,CAAC;gBAEF,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,2DAA2D;gBAE/F,gCAAgC;gBAChC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxD,IAAI,aAAa,EAAE;oBACjB,MAAM,IAAI,KAAK,CACb,iCAAiC,cAAc,MAAM,aAAa,CAAC,CAAC,CAAC,EAAE,CACxE,CAAC;iBACH;gBAED,kCAAkC;gBAClC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;gBACjC,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAW,CAAC;gBAEjC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAC;oBAClB,CAAC,2BAAmB,CAAC,cAAc,CAAC,EAAE,cAAc;oBACpD,CAAC,2BAAmB,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE;iBACpC,CAAC,CAAC;gBAEH,OAAO,GAAG,CAAC;YACb,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAEO,aAAa,CACnB,MAAmB,EACnB,IAAO,EACP,UAAkB,EAClB,MAAc,EACd,cAAsB,EACtB,IAAiB,EACjB,IAAO,EACP,YAAoB;IACpB,0DAA0D;IAC1D,UAAmB;QAEnB,EAAE;QACF,6CAA6C;QAC7C,EAAE;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACvC,cAAc;YACd,UAAU;SACX,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,GAAG,CAAC;QAExC,MAAM,UAAU,mCACX,IAAI,KACP,KAAK,EACL,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAC5B,SAAS,EAAE,GAAG,EACd,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,cAAc,GAC7B,CAAC;QAEF,UAAU,CAAC,MAAM,mCAAQ,IAAI,CAAC,MAAM,KAAE,KAAK,EAAE,YAAY,GAAE,CAAC;QAE5D,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAU,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACvE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEnB,IAAI,UAAU,EAAE;YACd,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;SAC9C;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,cAAsB;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,MAAmB,EACnB,GAAW,EACX,IAAa;QAEb,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;QAElE,OAAO,IAAI,CAAC,sBAAsB,CAAI,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,GAAW,EACX,OAAY,EACZ,IAAa;QAEb,IAAI,OAAO,EAAE;YACX,MAAM,gBAAgB,GAAwB;gBAC5C,GAAG;gBACH,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI;aACL,CAAC;YAEF,IAAI,OAAO,CAAC,KAAK,EAAE;gBACjB,gBAAgB,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAClD;YAED,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,gBAAgB,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aACtD;YAED,IAAI,OAAO,CAAC,EAAE,EAAE;gBACd,gBAAgB,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;aAClC;YAED,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,gBAAgB,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;aAC5C;YAED,IAAI,OAAO,CAAC,KAAK,EAAE;gBACjB,gBAAgB,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;aACxC;YAED,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;gBAChC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAClD,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,IAAI,CACb,CAAC;aACH;YAED,OAAO,gBAAgB,CAAC;SACzB;QAED,kFAAkF;QAClF,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SAClC;IACH,CAAC;IAEO,SAAS,CAAC,GAAW,EAAE,IAAa;QAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;QAEhD,OAAO;YACL,GAAG;YACH,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACb,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI;YAClC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI;YACnB,OAAO;YACP,IAAI;SACL,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,EAAU;QAEV,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAElE,OAAO,IAAI,CAAC,sBAAsB,CAChC,EAAE,EACF,UAAU,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EACzC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAC7B,CAAC;IACJ,CAAC;IAEO,mBAAmB,CACzB,OAAgB,EAChB,OAAgB;QAEhB,MAAM,QAAQ,GAAgC,EAAE,CAAC;QACjD,IAAI,OAAO,EAAE;YACX,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SACrC;QACD,IAAI,OAAO,EAAE;YACX,QAAQ,CAAC,IAAI,GAAG,SAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;SAC3C;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,KAAK,GAAG,CAAC,EACT,GAAG,GAAG,CAAC,CAAC,EACR,GAAG,GAAG,KAAK;QAEX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QACjC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAE1C,MAAM,MAAM,GAAG,GAAG;YAChB,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC;YACjE,CAAC,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;QAEvE,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACzC,IAAI,CAAC,IAAI,CACP,IAAI,CAAC,gBAAgB,CAAI,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACrE,CAAC;SACH;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;QAEjC,OAAO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACxC,CAAC;IAEO,qBAAqB,CAAC,EAC5B,UAAU,EACV,cAAc,GAIf;QACC,OAAO,UAAU,cAAc,IAAI,UAAU,EAAE,CAAC;IAClD,CAAC;CACF;AAnXD,oCAmXC;AAEM,MAAM,qBAAqB,GAAG,CACnC,MAAc,EACd,IAAmB,EACC,EAAE;IACtB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAA,6BAAe,EAAC,OAAO,kCACnC,IAAI,KACP,WAAW,IACX,CAAC;IAEH,IAAI;QACF,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;SAC7B;aAAM;YACL,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;SAClC;KACF;IAAC,OAAO,CAAC,EAAE;QACV,eAAe;KAChB;AACH,CAAC,CAAC;AArBW,QAAA,qBAAqB,yBAqBhC"}
@@ -30,53 +30,16 @@ local prefixKey = ARGV[6]
30
30
 
31
31
  -- Includes
32
32
  --- @include "includes/removeJob"
33
-
34
- local function storeRepeatableJob(schedulerId, repeatKey, nextMillis, rawOpts, templateData, templateOpts)
35
- rcall("ZADD", repeatKey, nextMillis, schedulerId)
36
- local opts = cmsgpack.unpack(rawOpts)
37
-
38
- local optionalValues = {}
39
- if opts['tz'] then
40
- table.insert(optionalValues, "tz")
41
- table.insert(optionalValues, opts['tz'])
42
- end
43
-
44
- if opts['pattern'] then
45
- table.insert(optionalValues, "pattern")
46
- table.insert(optionalValues, opts['pattern'])
47
- end
48
-
49
- if opts['endDate'] then
50
- table.insert(optionalValues, "endDate")
51
- table.insert(optionalValues, opts['endDate'])
52
- end
53
-
54
- if opts['every'] then
55
- table.insert(optionalValues, "every")
56
- table.insert(optionalValues, opts['every'])
57
- end
58
-
59
- local jsonTemplateOpts = cjson.encode(templateOpts)
60
- if jsonTemplateOpts and jsonTemplateOpts ~= '{}' then
61
- table.insert(optionalValues, "opts")
62
- table.insert(optionalValues, jsonTemplateOpts)
63
- end
64
-
65
- if templateData and templateData ~= '{}' then
66
- table.insert(optionalValues, "data")
67
- table.insert(optionalValues, templateData)
68
- end
69
-
70
- rcall("HMSET", repeatKey .. ":" .. schedulerId, "name", opts['name'], unpack(optionalValues))
71
- end
33
+ --- @include "includes/storeJobScheduler"
72
34
 
73
35
  -- If we are overriding a repeatable job we must delete the delayed job for
74
36
  -- the next iteration.
37
+ local schedulerKey = repeatKey .. ":" .. jobSchedulerId
75
38
  local prevMillis = rcall("ZSCORE", repeatKey, jobSchedulerId)
76
39
  if prevMillis ~= false then
77
40
  local delayedJobId = "repeat:" .. jobSchedulerId .. ":" .. prevMillis
78
41
  local nextDelayedJobId = "repeat:" .. jobSchedulerId .. ":" .. nextMillis
79
- local nextDelayedJobKey = repeatKey .. ":" .. jobSchedulerId .. ":" .. nextMillis
42
+ local nextDelayedJobKey = schedulerKey .. ":" .. nextMillis
80
43
 
81
44
  if rcall("ZSCORE", delayedKey, delayedJobId) ~= false and
82
45
  (rcall("EXISTS", nextDelayedJobKey) ~= 1 or delayedJobId == nextDelayedJobId) then
@@ -85,4 +48,5 @@ if prevMillis ~= false then
85
48
  end
86
49
  end
87
50
 
88
- return storeRepeatableJob(jobSchedulerId, repeatKey, nextMillis, ARGV[2], ARGV[4], templateOpts)
51
+ local schedulerOpts = cmsgpack.unpack(ARGV[2])
52
+ return storeJobScheduler(jobSchedulerId, schedulerKey, repeatKey, nextMillis, schedulerOpts, ARGV[4], templateOpts)
@@ -0,0 +1,46 @@
1
+ --[[
2
+ Function to store a job scheduler
3
+ ]]
4
+ local function storeJobScheduler(schedulerId, schedulerKey, repeatKey, nextMillis, opts,
5
+ templateData, templateOpts)
6
+ rcall("ZADD", repeatKey, nextMillis, schedulerId)
7
+
8
+ local optionalValues = {}
9
+ if opts['tz'] then
10
+ table.insert(optionalValues, "tz")
11
+ table.insert(optionalValues, opts['tz'])
12
+ end
13
+
14
+ if opts['limit'] then
15
+ table.insert(optionalValues, "limit")
16
+ table.insert(optionalValues, opts['limit'])
17
+ end
18
+
19
+ if opts['pattern'] then
20
+ table.insert(optionalValues, "pattern")
21
+ table.insert(optionalValues, opts['pattern'])
22
+ end
23
+
24
+ if opts['endDate'] then
25
+ table.insert(optionalValues, "endDate")
26
+ table.insert(optionalValues, opts['endDate'])
27
+ end
28
+
29
+ if opts['every'] then
30
+ table.insert(optionalValues, "every")
31
+ table.insert(optionalValues, opts['every'])
32
+ end
33
+
34
+ local jsonTemplateOpts = cjson.encode(templateOpts)
35
+ if jsonTemplateOpts and jsonTemplateOpts ~= '{}' then
36
+ table.insert(optionalValues, "opts")
37
+ table.insert(optionalValues, jsonTemplateOpts)
38
+ end
39
+
40
+ if templateData and templateData ~= '{}' then
41
+ table.insert(optionalValues, "data")
42
+ table.insert(optionalValues, templateData)
43
+ end
44
+
45
+ rcall("HMSET", schedulerKey, "name", opts['name'], unpack(optionalValues))
46
+ end
@@ -180,51 +180,60 @@ local function removeJob(jobId, hard, baseKey, shouldRemoveDeduplicationKey)
180
180
  end
181
181
  removeJobKeys(jobKey)
182
182
  end
183
- local function storeRepeatableJob(schedulerId, repeatKey, nextMillis, rawOpts, templateData, templateOpts)
184
- rcall("ZADD", repeatKey, nextMillis, schedulerId)
185
- local opts = cmsgpack.unpack(rawOpts)
186
- local optionalValues = {}
187
- if opts['tz'] then
188
- table.insert(optionalValues, "tz")
189
- table.insert(optionalValues, opts['tz'])
190
- end
191
- if opts['pattern'] then
192
- table.insert(optionalValues, "pattern")
193
- table.insert(optionalValues, opts['pattern'])
194
- end
195
- if opts['endDate'] then
196
- table.insert(optionalValues, "endDate")
197
- table.insert(optionalValues, opts['endDate'])
198
- end
199
- if opts['every'] then
200
- table.insert(optionalValues, "every")
201
- table.insert(optionalValues, opts['every'])
202
- end
203
- local jsonTemplateOpts = cjson.encode(templateOpts)
204
- if jsonTemplateOpts and jsonTemplateOpts ~= '{}' then
205
- table.insert(optionalValues, "opts")
206
- table.insert(optionalValues, jsonTemplateOpts)
207
- end
208
- if templateData and templateData ~= '{}' then
209
- table.insert(optionalValues, "data")
210
- table.insert(optionalValues, templateData)
211
- end
212
- rcall("HMSET", repeatKey .. ":" .. schedulerId, "name", opts['name'], unpack(optionalValues))
183
+ --[[
184
+ Function to store a job scheduler
185
+ ]]
186
+ local function storeJobScheduler(schedulerId, schedulerKey, repeatKey, nextMillis, opts,
187
+ templateData, templateOpts)
188
+ rcall("ZADD", repeatKey, nextMillis, schedulerId)
189
+ local optionalValues = {}
190
+ if opts['tz'] then
191
+ table.insert(optionalValues, "tz")
192
+ table.insert(optionalValues, opts['tz'])
193
+ end
194
+ if opts['limit'] then
195
+ table.insert(optionalValues, "limit")
196
+ table.insert(optionalValues, opts['limit'])
197
+ end
198
+ if opts['pattern'] then
199
+ table.insert(optionalValues, "pattern")
200
+ table.insert(optionalValues, opts['pattern'])
201
+ end
202
+ if opts['endDate'] then
203
+ table.insert(optionalValues, "endDate")
204
+ table.insert(optionalValues, opts['endDate'])
205
+ end
206
+ if opts['every'] then
207
+ table.insert(optionalValues, "every")
208
+ table.insert(optionalValues, opts['every'])
209
+ end
210
+ local jsonTemplateOpts = cjson.encode(templateOpts)
211
+ if jsonTemplateOpts and jsonTemplateOpts ~= '{}' then
212
+ table.insert(optionalValues, "opts")
213
+ table.insert(optionalValues, jsonTemplateOpts)
214
+ end
215
+ if templateData and templateData ~= '{}' then
216
+ table.insert(optionalValues, "data")
217
+ table.insert(optionalValues, templateData)
218
+ end
219
+ rcall("HMSET", schedulerKey, "name", opts['name'], unpack(optionalValues))
213
220
  end
214
221
  -- If we are overriding a repeatable job we must delete the delayed job for
215
222
  -- the next iteration.
223
+ local schedulerKey = repeatKey .. ":" .. jobSchedulerId
216
224
  local prevMillis = rcall("ZSCORE", repeatKey, jobSchedulerId)
217
225
  if prevMillis ~= false then
218
226
  local delayedJobId = "repeat:" .. jobSchedulerId .. ":" .. prevMillis
219
227
  local nextDelayedJobId = "repeat:" .. jobSchedulerId .. ":" .. nextMillis
220
- local nextDelayedJobKey = repeatKey .. ":" .. jobSchedulerId .. ":" .. nextMillis
228
+ local nextDelayedJobKey = schedulerKey .. ":" .. nextMillis
221
229
  if rcall("ZSCORE", delayedKey, delayedJobId) ~= false and
222
230
  (rcall("EXISTS", nextDelayedJobKey) ~= 1 or delayedJobId == nextDelayedJobId) then
223
231
  removeJob(delayedJobId, true, prefixKey, true --[[remove debounce key]] )
224
232
  rcall("ZREM", delayedKey, delayedJobId)
225
233
  end
226
234
  end
227
- return storeRepeatableJob(jobSchedulerId, repeatKey, nextMillis, ARGV[2], ARGV[4], templateOpts)
235
+ local schedulerOpts = cmsgpack.unpack(ARGV[2])
236
+ return storeJobScheduler(jobSchedulerId, schedulerKey, repeatKey, nextMillis, schedulerOpts, ARGV[4], templateOpts)
228
237
  `;
229
238
  exports.addJobScheduler = {
230
239
  name: 'addJobScheduler',
@@ -1 +1 @@
1
- {"version":3,"file":"addJobScheduler-2.js","sourceRoot":"","sources":["../../../src/scripts/addJobScheduler-2.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgOf,CAAC;AACW,QAAA,eAAe,GAAG;IAC7B,IAAI,EAAE,iBAAiB;IACvB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}
1
+ {"version":3,"file":"addJobScheduler-2.js","sourceRoot":"","sources":["../../../src/scripts/addJobScheduler-2.ts"],"names":[],"mappings":";;;AAAA,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyOf,CAAC;AACW,QAAA,eAAe,GAAG;IAC7B,IAAI,EAAE,iBAAiB;IACvB,OAAO;IACP,IAAI,EAAE,CAAC;CACR,CAAC"}