@n8n/scheduler 1.1.2 → 1.3.0
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.
- package/dist/build.tsbuildinfo +1 -1
- package/dist/core/factory.js +22 -3
- package/dist/core/factory.js.map +1 -1
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +2 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/materializer/index.d.ts +1 -1
- package/dist/core/materializer/index.js +2 -1
- package/dist/core/materializer/index.js.map +1 -1
- package/dist/core/materializer/materialize.d.ts +5 -0
- package/dist/core/materializer/materialize.js +42 -12
- package/dist/core/materializer/materialize.js.map +1 -1
- package/dist/core/materializer/misfire.d.ts +13 -0
- package/dist/core/materializer/misfire.js +42 -0
- package/dist/core/materializer/misfire.js.map +1 -0
- package/dist/core/materializer/plan.d.ts +2 -0
- package/dist/core/materializer/plan.js +16 -7
- package/dist/core/materializer/plan.js.map +1 -1
- package/dist/core/materializer/transaction.d.ts +6 -0
- package/dist/core/reaper/reap.d.ts +3 -0
- package/dist/core/reaper/reap.js +18 -2
- package/dist/core/reaper/reap.js.map +1 -1
- package/dist/core/types/schedule.d.ts +3 -1
- package/dist/observability/attributes.d.ts +3 -0
- package/dist/observability/attributes.js +3 -0
- package/dist/observability/attributes.js.map +1 -1
- package/dist/observability/metrics.d.ts +4 -1
- package/dist/observability/metrics.js +2 -0
- package/dist/observability/metrics.js.map +1 -1
- package/package.json +4 -4
package/dist/core/factory.js
CHANGED
|
@@ -151,14 +151,25 @@ function createScheduler(deps) {
|
|
|
151
151
|
},
|
|
152
152
|
}, signal);
|
|
153
153
|
await (0, materializer_tracing_1.traceCreatedTasks)(tracer, summary.created);
|
|
154
|
-
recordMetric(() =>
|
|
154
|
+
recordMetric(() => {
|
|
155
|
+
metrics.recordMaterialized(summary.occurrences, summary.deferredJobs);
|
|
156
|
+
metrics.recordMisfired(summary.misfires);
|
|
157
|
+
metrics.recordRetired(summary.retiredOccurrences);
|
|
158
|
+
});
|
|
155
159
|
return summary;
|
|
156
160
|
}
|
|
157
161
|
catch (error) {
|
|
158
162
|
if (signal?.aborted === true &&
|
|
159
163
|
signal.reason !== lifecycle_1.PASS_TIMED_OUT &&
|
|
160
164
|
error === signal.reason) {
|
|
161
|
-
return {
|
|
165
|
+
return {
|
|
166
|
+
claimedJobs: 0,
|
|
167
|
+
occurrences: 0,
|
|
168
|
+
created: [],
|
|
169
|
+
deferredJobs: 0,
|
|
170
|
+
misfires: [],
|
|
171
|
+
retiredOccurrences: 0,
|
|
172
|
+
};
|
|
162
173
|
}
|
|
163
174
|
throw error;
|
|
164
175
|
}
|
|
@@ -166,6 +177,8 @@ function createScheduler(deps) {
|
|
|
166
177
|
[attributes_1.SCHEDULER_ATTRIBUTES.claimedJobs]: summary.claimedJobs,
|
|
167
178
|
[attributes_1.SCHEDULER_ATTRIBUTES.occurrences]: summary.occurrences,
|
|
168
179
|
[attributes_1.SCHEDULER_ATTRIBUTES.deferredJobs]: summary.deferredJobs,
|
|
180
|
+
[attributes_1.SCHEDULER_ATTRIBUTES.skippedOccurrences]: (0, materializer_1.totalDiscarded)(summary.misfires),
|
|
181
|
+
[attributes_1.SCHEDULER_ATTRIBUTES.retiredOccurrences]: summary.retiredOccurrences,
|
|
169
182
|
}));
|
|
170
183
|
const runExecute = (0, pass_tracing_1.tracePass)(tracer, {
|
|
171
184
|
name: 'Scheduler claim',
|
|
@@ -180,6 +193,11 @@ function createScheduler(deps) {
|
|
|
180
193
|
error: described(error),
|
|
181
194
|
});
|
|
182
195
|
},
|
|
196
|
+
onRetireError: (error) => {
|
|
197
|
+
emit('error', 'Scheduler could not retire stale pending occurrences', {
|
|
198
|
+
error: described(error),
|
|
199
|
+
});
|
|
200
|
+
},
|
|
183
201
|
onDeadLetter: (task) => {
|
|
184
202
|
emit('warn', 'Scheduler dead-lettered a task; its last attempt lost its lease', {
|
|
185
203
|
...task,
|
|
@@ -189,11 +207,12 @@ function createScheduler(deps) {
|
|
|
189
207
|
emit('warn', 'Scheduler completed a task whose lease lapsed after dispatch; its effect had already happened', { taskId });
|
|
190
208
|
},
|
|
191
209
|
}, signal);
|
|
192
|
-
recordMetric(() => metrics.recordReaped(result.reclaimed, result.deadLettered));
|
|
210
|
+
recordMetric(() => metrics.recordReaped(result.reclaimed, result.deadLettered, result.missed));
|
|
193
211
|
return result;
|
|
194
212
|
}, (result) => ({
|
|
195
213
|
[attributes_1.SCHEDULER_ATTRIBUTES.reclaimed]: result.reclaimed,
|
|
196
214
|
[attributes_1.SCHEDULER_ATTRIBUTES.deadLettered]: result.deadLettered,
|
|
215
|
+
[attributes_1.SCHEDULER_ATTRIBUTES.missed]: result.missed,
|
|
197
216
|
}));
|
|
198
217
|
const runPrune = (0, pass_tracing_1.tracePass)(tracer, { name: 'Scheduler retention', op: 'scheduler.retention' }, async (signal) => {
|
|
199
218
|
const summary = await (0, retention_1.prune)(taskStore, retentionOptions, signal);
|
package/dist/core/factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/core/factory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/core/factory.ts"],"names":[],"mappings":";;;;AAAA,8CAAsC;AACtC,iEAA6D;AAE7D,6CAKsB;AACtB,qCAAwD;AACxD,yCAKoB;AAEpB,2CAAoG;AAEpG,iDAA2F;AAE3F,qCAAwD;AAExD,2CAA+D;AAG/D,4DAAmE;AACnE,wEAA8F;AAC9F,gFAA0E;AAC1E,sDAA8E;AAC9E,gEAA0D;AAC1D,oDAAkE;AASrD,QAAA,2CAA2C,GAAG,EAAE,CAAC;AAwE9D,SAAS,YAAY,CAAmB,QAAW,EAAE,SAAS,GAAe,EAAE;IAC9E,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAmB,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACrB,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AASD,yBAAgC,IAAmB;IAClD,MAAM,EAAE,MAAM,EAAE,uBAAuB,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACrE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,mBAAU,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,qBAAW,CAAC;IAC5C,MAAM,mBAAmB,GAAG,YAAY,CAAC,2CAA4B,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1F,MAAM,eAAe,GAAG,YAAY,CAAC,mCAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,YAAY,CAAC,+BAAsB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACxE,MAAM,gBAAgB,GAAG,YAAY,CAAC,qCAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjF,MAAM,gBAAgB,GAAG,YAAY,CAAC,qCAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACjF,MAAM,gBAAgB,GAAG,YAAY,CAAC,uCAA0B,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAClF,MAAM,+BAA+B,GACpC,IAAI,CAAC,+BAA+B,IAAI,QAAA,2CAA2C,CAAC;IAErF,IAAI,CAAC,CAAC,gBAAgB,CAAC,WAAW,IAAI,CAAC,IAAI,gBAAgB,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,qCAA4B,CACrC,mDAAmD,gBAAgB,CAAC,WAAW,EAAE,CACjF,CAAC;IACH,CAAC;IAKD,MAAM,YAAY,GAAG;QACpB,6BAA6B;QAC7B,yBAAyB;QACzB,uBAAuB;QACvB,0BAA0B;QAC1B,4BAA4B;QAC5B,wBAAwB;QACxB,sBAAsB;QACtB,yBAAyB;KAChB,CAAC;IACX,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,qCAA4B,CACrC,GAAG,GAAG,8CAA8C,KAAK,EAAE,CAC3D,CAAC;QACH,CAAC;IACF,CAAC;IAED,IACC,gBAAgB,CAAC,eAAe,KAAK,YAAY;QACjD,gBAAgB,CAAC,eAAe,KAAK,YAAY,EAChD,CAAC;QACF,MAAM,IAAI,qCAA4B,CACrC,6DAA6D,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,CACvG,CAAC;IACH,CAAC;IAED,MAAM,EAAE,mBAAmB,EAAE,GAAG,gBAAgB,CAAC;IACjD,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,mBAAmB,IAAI,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,qCAA4B,CACrC,uDAAuD,mBAAmB,EAAE,CAC5E,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,KAA0B,EAAE,OAAe,EAAE,OAAgC,EAAE,EAAE;QAI9F,IAAI,CAAC;YACJ,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACF,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,IAAA,0BAAW,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC;IAUjE,mBAAmB,CAAC,gBAAgB;QACnC,IAAA,gCAAoB,EACnB,gBAAgB,CAAC,2BAA2B,EAC5C,gBAAgB,CAAC,WAAW,CAC5B,GAAG,eAAe,CAAC,gBAAgB,CAAC;IACtC,IAAI,mBAAmB,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,aAAa,EAAE,CAAC;QAK9E,IAAI,CACH,MAAM,EACN,iGAAiG,EACjG;YACC,gBAAgB,EAAE,mBAAmB,CAAC,gBAAgB;YACtD,aAAa,EAAE,mBAAmB,CAAC,aAAa;SAChD,CACD,CAAC;IACH,CAAC;IAKD,MAAM,YAAY,GAAG,CAAC,MAAkB,EAAE,EAAE;QAC3C,IAAI,CAAC;YACJ,MAAM,EAAE,CAAC;QACV,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAI,8BAAmB,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAC5B,SAAS,EACT,QAAQ,EACR,IAAI,yBAAc,EAAE,EACpB,eAAe,EACf;QACC,2BAA2B,EAAE,CAAC,OAAO,EAAE,EAAE;YACxC,IAAI,CACH,MAAM,EACN,6GAA6G,EAC7G,EAAE,GAAG,OAAO,EAAE,CACd,CAAC;QACH,CAAC;QACD,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,CAAC,MAAM,EAAE,qEAAqE,EAAE;gBACnF,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC,CAAC;QACJ,CAAC;QACD,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC5B,IAAI,CAAC,OAAO,EAAE,gEAAgE,EAAE;gBAC/E,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;aACvB,CAAC,CAAC;QACJ,CAAC;QACD,cAAc,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACjC,IAAI,CAAC,OAAO,EAAE,iEAAiE,EAAE;gBAChF,MAAM;gBACN,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;aACvB,CAAC,CAAC;QACJ,CAAC;QACD,UAAU,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE;YACpC,YAAY,CAAC,GAAG,EAAE;gBACjB,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBACjC,OAAO,CAAC,yBAAyB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YACH,IAAI,UAAU,IAAI,+BAA+B,EAAE,CAAC;gBACnD,IAAI,CAAC,MAAM,EAAE,sDAAsD,EAAE;oBACpE,QAAQ;oBACR,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;iBAClC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QACD,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAC5B,YAAY,CAAC,GAAG,EAAE;YACjB,OAAO,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE5C,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACxD,CAAC,CAAC;QACH,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KACxE,EACD,IAAA,wCAAqB,EAAC,MAAM,CAAC,CAC7B,CAAC;IAEF,IAAI,gBAAgB,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;QACjF,IAAI,CACH,MAAM,EACN,2GAA2G,EAC3G;YACC,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB;YACnD,sBAAsB,EAAE,gBAAgB,CAAC,sBAAsB;SAC/D,CACD,CAAC;IACH,CAAC;IAQD,MAAM,cAAc,GAAG,IAAA,wBAAS,EAC/B,MAAM,EACN,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,uBAAuB,EAAE,EAC9D,KAAK,EAAE,MAAM,EAAE,EAAE;QAChB,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,IAAA,0BAAW,EAChC,uBAAuB,EACvB,mBAAmB,EACnB;gBACC,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;oBAC3B,IAAI,CAAC,OAAO,EAAE,6DAA6D,EAAE;wBAC5E,KAAK,EAAE,GAAG,CAAC,EAAE;wBACb,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;qBACvB,CAAC,CAAC;gBACJ,CAAC;gBACD,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE;oBAChC,IAAI,CACH,OAAO,EACP,uEAAuE,EACvE,EAAE,GAAG,OAAO,EAAE,CACd,CAAC;gBACH,CAAC;aACD,EACD,MAAM,CACN,CAAC;YACF,MAAM,IAAA,wCAAiB,EAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACjD,YAAY,CAAC,GAAG,EAAE;gBACjB,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;gBACtE,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACzC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAIhB,IACC,MAAM,EAAE,OAAO,KAAK,IAAI;gBACxB,MAAM,CAAC,MAAM,KAAK,0BAAc;gBAChC,KAAK,KAAK,MAAM,CAAC,MAAM,EACtB,CAAC;gBACF,OAAO;oBACN,WAAW,EAAE,CAAC;oBACd,WAAW,EAAE,CAAC;oBACd,OAAO,EAAE,EAAE;oBACX,YAAY,EAAE,CAAC;oBACf,QAAQ,EAAE,EAAE;oBACZ,kBAAkB,EAAE,CAAC;iBACrB,CAAC;YACH,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC,EACD,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACb,CAAC,iCAAoB,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW;QACvD,CAAC,iCAAoB,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW;QACvD,CAAC,iCAAoB,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY;QACzD,CAAC,iCAAoB,CAAC,kBAAkB,CAAC,EAAE,IAAA,6BAAc,EAAC,OAAO,CAAC,QAAQ,CAAC;QAC3E,CAAC,iCAAoB,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB;KACrE,CAAC,CACF,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,wBAAS,EAC3B,MAAM,EACN;QACC,IAAI,EAAE,iBAAiB;QACvB,EAAE,EAAE,iBAAiB;QACrB,UAAU,EAAE,EAAE,CAAC,iCAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE;KACnD,EACD,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,EACjE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,iCAAoB,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAClE,CAAC;IAEF,MAAM,OAAO,GAAG,IAAA,wBAAS,EACxB,MAAM,EACN,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAChD,KAAK,EAAE,MAAM,EAAE,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,IAAA,aAAI,EACxB,SAAS,EACT,aAAa,EACb;YACC,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC7B,IAAI,CACH,OAAO,EACP,2EAA2E,EAC3E;oBACC,MAAM;oBACN,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;iBACvB,CACD,CAAC;YACH,CAAC;YACD,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;gBACxB,IAAI,CAAC,OAAO,EAAE,sDAAsD,EAAE;oBACrE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;iBACvB,CAAC,CAAC;YACJ,CAAC;YACD,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtB,IAAI,CAAC,MAAM,EAAE,iEAAiE,EAAE;oBAC/E,GAAG,IAAI;iBACP,CAAC,CAAC;YACJ,CAAC;YACD,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;gBACxC,IAAI,CACH,MAAM,EACN,+FAA+F,EAC/F,EAAE,MAAM,EAAE,CACV,CAAC;YACH,CAAC;SACD,EACD,MAAM,CACN,CAAC;QACF,YAAY,CAAC,GAAG,EAAE,CACjB,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAC1E,CAAC;QACF,OAAO,MAAM,CAAC;IACf,CAAC,EACD,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACZ,CAAC,iCAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS;QAClD,CAAC,iCAAoB,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,YAAY;QACxD,CAAC,iCAAoB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM;KAC5C,CAAC,CACF,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAA,wBAAS,EACzB,MAAM,EACN,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAC1D,KAAK,EAAE,MAAM,EAAE,EAAE;QAChB,MAAM,OAAO,GAAG,MAAM,IAAA,iBAAK,EAAC,SAAS,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;YAClD,IAAI,CAAC,MAAM,EAAE,gEAAgE,EAAE;gBAC9E,GAAG,OAAO;aACV,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,OAAO,EAAE,4CAA4C,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,YAAY,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC;IAChB,CAAC,EACD,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACb,CAAC,iCAAoB,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,OAAO;QACxD,CAAC,iCAAoB,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,OAAO;KACxD,CAAC,CACF,CAAC;IAEF,MAAM,QAAQ,GAAG,CAChB,IAAY,EACZ,GAA8C,EAC9C,eAAuB,EACvB,cAAsB,EACrB,EAAE,CACH,IAAI,gBAAI,CACP,GAAG,EACH;QACC,UAAU,EAAE,eAAe,GAAG,gBAAI,CAAC,OAAO,CAAC,cAAc;QACzD,WAAW,EAAE,gBAAgB,CAAC,WAAW;QACzC,SAAS,EAAE,cAAc,GAAG,gBAAI,CAAC,OAAO,CAAC,cAAc;QACvD,WAAW,EAAE,gBAAgB,CAAC,eAAe;QAC7C,aAAa,EAAE,gBAAgB,CAAC,mBAAmB;KACnD,EACD;QACC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,OAAO,EAAE,kDAAkD,EAAE;gBACjE,IAAI;gBACJ,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;aACvB,CAAC,CAAC;QACJ,CAAC;QACD,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;YAC5B,IAAI,CAAC,OAAO,EAAE,uEAAuE,EAAE;gBACtF,IAAI;gBACJ,SAAS;aACT,CAAC,CAAC;QACJ,CAAC;QACD,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;YACtC,IAAI,CAAC,MAAM,EAAE,wEAAwE,EAAE;gBACtF,IAAI;gBACJ,QAAQ;gBACR,KAAK;aACL,CAAC,CAAC;QACJ,CAAC;KACD,CACD,CAAC;IAEH,MAAM,KAAK,GAAG;QACb,QAAQ,CACP,cAAc,EACd,cAAc,EACd,gBAAgB,CAAC,2BAA2B,EAC5C,gBAAgB,CAAC,0BAA0B,CAC3C;QACD,QAAQ,CACP,UAAU,EACV,UAAU,EACV,gBAAgB,CAAC,uBAAuB,EACxC,gBAAgB,CAAC,sBAAsB,CACvC;QACD,QAAQ,CACP,QAAQ,EACR,OAAO,EACP,gBAAgB,CAAC,qBAAqB,EACtC,gBAAgB,CAAC,oBAAoB,CACrC;QACD,QAAQ,CACP,WAAW,EACX,QAAQ,EACR,gBAAgB,CAAC,wBAAwB,EACzC,gBAAgB,CAAC,uBAAuB,CACxC;KACD,CAAC;IAEF,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QACjC,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS;YAAE,OAAO;QACnC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAA,6BAAgB,EAAC,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACvF,IAAI,IAAA,mCAAsB,EAAC,IAAI,EAAE,gBAAgB,CAAC,eAAe,CAAC,EAAE,CAAC;gBACpE,IAAI,CACH,MAAM,EACN,+LAA+L,EAC/L,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAClF,CAAC;YACH,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,EAAE,gDAAgD,EAAE;gBAC/D,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;aACvB,CAAC,CAAC;QACJ,CAAC;IACF,CAAC,CAAC;IAEF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,QAAmC,CAAC;IAExC,OAAO;QACN,mBAAmB,CAAC,QAAQ,EAAE,OAAO;YAGpC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAA,qCAAkB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAClE,CAAC;QAED,WAAW,EAAE,cAAc;QAE3B,OAAO,EAAE,UAAU;QAEnB,IAAI,EAAE,OAAO;QAEb,KAAK,EAAE,QAAQ;QAEf,KAAK;YACJ,IAAI,CAAC,OAAO,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACxC,OAAO,GAAG,IAAI,CAAC;gBACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACd,CAAC;gBACD,IAAI,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;gBAG9C,KAAK,cAAc,EAAE,CAAC;YACvB,CAAC;QACF,CAAC;QAED,KAAK,CAAC,IAAI;YAGT,QAAQ,KAAK,CAAC,KAAK,IAAI,EAAE;gBAGxB,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAChE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACtB,IAAI,OAAO,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC/C,CAAC;YACF,CAAC,CAAC,EAAE,CAAC;YACL,MAAM,QAAQ,CAAC;QAChB,CAAC;KACD,CAAC;AACH,CAAC"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -10,8 +10,8 @@ export { provision, deprovision, createJobProvisioner, scheduleFingerprint } fro
|
|
|
10
10
|
export type { JobProvisioner, JobProvisionerDeps, ProvisionTransaction, RunInProvisionTransaction, DeprovisionTransaction, RunInDeprovisionTransaction, ScheduleDefinition, CronDefinition, RecurringCronDefinition, IntervalDefinition, OneOffDefinition, DesiredJob, ExistingJob, ProvisionedJob, ProvisionSummary, } from './provisioning';
|
|
11
11
|
export { createDispatchReporter } from './executor';
|
|
12
12
|
export type { ExecutorOptions, TaskHandler, DispatchReporter, DispatchDecision, } from './executor';
|
|
13
|
-
export { DEFAULT_MATERIALIZER_OPTIONS, materialize } from './materializer';
|
|
14
|
-
export type { MaterializerOptions, MaterializerSummary, NewOccurrence, RunInTransaction, } from './materializer';
|
|
13
|
+
export { DEFAULT_MATERIALIZER_OPTIONS, materialize, totalDiscarded } from './materializer';
|
|
14
|
+
export type { MaterializerOptions, MaterializerSummary, MisfireCount, NewOccurrence, RunInTransaction, } from './materializer';
|
|
15
15
|
export { pollLookaheadSeconds } from './lifecycle';
|
|
16
16
|
export type { ConcurrencyMode, LifecycleOptions } from './lifecycle';
|
|
17
17
|
export type { ReaperOptions, ReapResult } from './reaper';
|
package/dist/core/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.noopMetrics = exports.noopTracer = exports.SpanStatus = exports.pollLookaheadSeconds = exports.materialize = exports.DEFAULT_MATERIALIZER_OPTIONS = exports.createDispatchReporter = exports.scheduleFingerprint = exports.createJobProvisioner = exports.deprovision = exports.provision = exports.measureClockSkew = exports.isClockSkewSignificant = exports.DEFAULT_CLOCK_SKEW_OPTIONS = exports.CLOCK_SKEW_WARN_THRESHOLD_MS = exports.validateSchedule = exports.computeNextRunAt = exports.computeFirstRunAt = exports.DEFAULT_DISPATCH_LAG_WARN_THRESHOLD_SECONDS = exports.createScheduler = void 0;
|
|
3
|
+
exports.noopMetrics = exports.noopTracer = exports.SpanStatus = exports.pollLookaheadSeconds = exports.totalDiscarded = exports.materialize = exports.DEFAULT_MATERIALIZER_OPTIONS = exports.createDispatchReporter = exports.scheduleFingerprint = exports.createJobProvisioner = exports.deprovision = exports.provision = exports.measureClockSkew = exports.isClockSkewSignificant = exports.DEFAULT_CLOCK_SKEW_OPTIONS = exports.CLOCK_SKEW_WARN_THRESHOLD_MS = exports.validateSchedule = exports.computeNextRunAt = exports.computeFirstRunAt = exports.DEFAULT_DISPATCH_LAG_WARN_THRESHOLD_SECONDS = exports.createScheduler = void 0;
|
|
4
4
|
var factory_1 = require("./factory");
|
|
5
5
|
Object.defineProperty(exports, "createScheduler", { enumerable: true, get: function () { return factory_1.createScheduler; } });
|
|
6
6
|
Object.defineProperty(exports, "DEFAULT_DISPATCH_LAG_WARN_THRESHOLD_SECONDS", { enumerable: true, get: function () { return factory_1.DEFAULT_DISPATCH_LAG_WARN_THRESHOLD_SECONDS; } });
|
|
@@ -24,6 +24,7 @@ Object.defineProperty(exports, "createDispatchReporter", { enumerable: true, get
|
|
|
24
24
|
var materializer_1 = require("./materializer");
|
|
25
25
|
Object.defineProperty(exports, "DEFAULT_MATERIALIZER_OPTIONS", { enumerable: true, get: function () { return materializer_1.DEFAULT_MATERIALIZER_OPTIONS; } });
|
|
26
26
|
Object.defineProperty(exports, "materialize", { enumerable: true, get: function () { return materializer_1.materialize; } });
|
|
27
|
+
Object.defineProperty(exports, "totalDiscarded", { enumerable: true, get: function () { return materializer_1.totalDiscarded; } });
|
|
27
28
|
var lifecycle_1 = require("./lifecycle");
|
|
28
29
|
Object.defineProperty(exports, "pollLookaheadSeconds", { enumerable: true, get: function () { return lifecycle_1.pollLookaheadSeconds; } });
|
|
29
30
|
var tracer_1 = require("../observability/tracer");
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;AACA,qCAAyF;AAAhF,0GAAA,eAAe,OAAA;AAAE,sIAAA,2CAA2C,OAAA;AAgBrE,kDAA4E;AAAnE,6GAAA,iBAAiB,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AAC5C,kDAAyD;AAAhD,4GAAA,gBAAgB,OAAA;AAEzB,2CAKsB;AAJrB,0HAAA,4BAA4B,OAAA;AAC5B,wHAAA,0BAA0B,OAAA;AAC1B,oHAAA,sBAAsB,OAAA;AACtB,8GAAA,gBAAgB,OAAA;AAIjB,+CAAmG;AAA1F,yGAAA,SAAS,OAAA;AAAE,2GAAA,WAAW,OAAA;AAAE,oHAAA,oBAAoB,OAAA;AAAE,mHAAA,mBAAmB,OAAA;AAkB1E,uCAAoD;AAA3C,kHAAA,sBAAsB,OAAA;AAO/B,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;AACA,qCAAyF;AAAhF,0GAAA,eAAe,OAAA;AAAE,sIAAA,2CAA2C,OAAA;AAgBrE,kDAA4E;AAAnE,6GAAA,iBAAiB,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AAC5C,kDAAyD;AAAhD,4GAAA,gBAAgB,OAAA;AAEzB,2CAKsB;AAJrB,0HAAA,4BAA4B,OAAA;AAC5B,wHAAA,0BAA0B,OAAA;AAC1B,oHAAA,sBAAsB,OAAA;AACtB,8GAAA,gBAAgB,OAAA;AAIjB,+CAAmG;AAA1F,yGAAA,SAAS,OAAA;AAAE,2GAAA,WAAW,OAAA;AAAE,oHAAA,oBAAoB,OAAA;AAAE,mHAAA,mBAAmB,OAAA;AAkB1E,uCAAoD;AAA3C,kHAAA,sBAAsB,OAAA;AAO/B,+CAA2F;AAAlF,4HAAA,4BAA4B,OAAA;AAAE,2GAAA,WAAW,OAAA;AAAE,8GAAA,cAAc,OAAA;AAQlE,yCAAmD;AAA1C,iHAAA,oBAAoB,OAAA;AAK7B,kDAAiE;AAAxD,oGAAA,UAAU,OAAA;AAAE,oGAAA,UAAU,OAAA;AAE/B,oDAAuD;AAA9C,sGAAA,WAAW,OAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { materialize, type MaterializerHooks, type MaterializerSummary, type MaterializerOptions, type OnJobPlanError, } from './materialize';
|
|
1
|
+
export { materialize, totalDiscarded, type MaterializerHooks, type MaterializerSummary, type MaterializerOptions, type MisfireCount, type OnJobPlanError, } from './materialize';
|
|
2
2
|
export { DEFAULT_MATERIALIZER_OPTIONS } from './options';
|
|
3
3
|
export { planOccurrences, type OccurrencePlan } from './plan';
|
|
4
4
|
export type { DueJobs, NewOccurrence, PlannedJob, RecordedOccurrence, RecordOccurrencesResult, RunInTransaction, MaterializerTransaction, } from './transaction';
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.planOccurrences = exports.DEFAULT_MATERIALIZER_OPTIONS = exports.materialize = void 0;
|
|
3
|
+
exports.planOccurrences = exports.DEFAULT_MATERIALIZER_OPTIONS = exports.totalDiscarded = exports.materialize = void 0;
|
|
4
4
|
var materialize_1 = require("./materialize");
|
|
5
5
|
Object.defineProperty(exports, "materialize", { enumerable: true, get: function () { return materialize_1.materialize; } });
|
|
6
|
+
Object.defineProperty(exports, "totalDiscarded", { enumerable: true, get: function () { return materialize_1.totalDiscarded; } });
|
|
6
7
|
var options_1 = require("./options");
|
|
7
8
|
Object.defineProperty(exports, "DEFAULT_MATERIALIZER_OPTIONS", { enumerable: true, get: function () { return options_1.DEFAULT_MATERIALIZER_OPTIONS; } });
|
|
8
9
|
var plan_1 = require("./plan");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/materializer/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/materializer/index.ts"],"names":[],"mappings":";;;AAAA,6CAQuB;AAPtB,0GAAA,WAAW,OAAA;AACX,6GAAA,cAAc,OAAA;AAOf,qCAAyD;AAAhD,uHAAA,4BAA4B,OAAA;AACrC,+BAA8D;AAArD,uGAAA,eAAe,OAAA"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import type { ScheduledJob } from '../types';
|
|
2
|
+
import { type MisfireCount } from './misfire';
|
|
2
3
|
import { type MaterializerOptions } from './options';
|
|
3
4
|
import type { RecordedOccurrence, RunInTransaction } from './transaction';
|
|
4
5
|
export type { MaterializerOptions } from './options';
|
|
6
|
+
export type { MisfireCount } from './misfire';
|
|
5
7
|
export interface MaterializerSummary {
|
|
6
8
|
claimedJobs: number;
|
|
7
9
|
occurrences: number;
|
|
8
10
|
created: RecordedOccurrence[];
|
|
9
11
|
deferredJobs: number;
|
|
12
|
+
misfires: MisfireCount[];
|
|
13
|
+
retiredOccurrences: number;
|
|
10
14
|
}
|
|
11
15
|
export type OnJobPlanError = (job: ScheduledJob, error: unknown) => void;
|
|
12
16
|
export interface MaterializerHooks {
|
|
@@ -17,3 +21,4 @@ export interface MaterializerHooks {
|
|
|
17
21
|
}) => void;
|
|
18
22
|
}
|
|
19
23
|
export declare function materialize(runInTransaction: RunInTransaction, options?: MaterializerOptions, hooks?: MaterializerHooks, signal?: AbortSignal): Promise<MaterializerSummary>;
|
|
24
|
+
export declare function totalDiscarded(misfires: MisfireCount[]): number;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.materialize = materialize;
|
|
4
|
+
exports.totalDiscarded = totalDiscarded;
|
|
4
5
|
const constants_1 = require("@n8n/constants");
|
|
6
|
+
const misfire_1 = require("./misfire");
|
|
5
7
|
const options_1 = require("./options");
|
|
6
8
|
const plan_1 = require("./plan");
|
|
7
9
|
async function materialize(runInTransaction, options = options_1.DEFAULT_MATERIALIZER_OPTIONS, hooks = {}, signal) {
|
|
@@ -11,12 +13,21 @@ async function materialize(runInTransaction, options = options_1.DEFAULT_MATERIA
|
|
|
11
13
|
const claimed = await tx.claimDueJobs(options.batchSize, lookaheadMs);
|
|
12
14
|
signal?.throwIfAborted();
|
|
13
15
|
if (claimed === undefined) {
|
|
14
|
-
return {
|
|
16
|
+
return {
|
|
17
|
+
claimedJobs: 0,
|
|
18
|
+
occurrences: 0,
|
|
19
|
+
created: [],
|
|
20
|
+
deferredJobs: 0,
|
|
21
|
+
misfires: [],
|
|
22
|
+
retiredOccurrences: 0,
|
|
23
|
+
};
|
|
15
24
|
}
|
|
16
25
|
const { occurrencesPlanned, numberOfJobsDeferred } = planOrDeferJobs(claimed, options, hooks.onPlanError);
|
|
17
|
-
const rows = toNewOccurrences(occurrencesPlanned);
|
|
26
|
+
const rows = toNewOccurrences(occurrencesPlanned, claimed.now);
|
|
18
27
|
const { recorded, created } = await tx.recordOccurrences(rows);
|
|
19
28
|
signal?.throwIfAborted();
|
|
29
|
+
const retiredOccurrences = await tx.retireSuperseded(toSuperseded(occurrencesPlanned));
|
|
30
|
+
signal?.throwIfAborted();
|
|
20
31
|
if (recorded < rows.length) {
|
|
21
32
|
try {
|
|
22
33
|
hooks.onSkippedDuplicates?.({ planned: rows.length, recorded });
|
|
@@ -30,18 +41,31 @@ async function materialize(runInTransaction, options = options_1.DEFAULT_MATERIA
|
|
|
30
41
|
occurrences: recorded,
|
|
31
42
|
created,
|
|
32
43
|
deferredJobs: numberOfJobsDeferred,
|
|
44
|
+
misfires: (0, misfire_1.countMisfires)(occurrencesPlanned),
|
|
45
|
+
retiredOccurrences,
|
|
33
46
|
};
|
|
34
47
|
});
|
|
35
48
|
}
|
|
36
|
-
function
|
|
37
|
-
return
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
runAt
|
|
43
|
-
|
|
44
|
-
|
|
49
|
+
function totalDiscarded(misfires) {
|
|
50
|
+
return misfires.reduce((total, { discarded }) => total + discarded, 0);
|
|
51
|
+
}
|
|
52
|
+
function toNewOccurrences(planned, now) {
|
|
53
|
+
return planned.flatMap(({ job, plan }) => plan.occurrences.map((when) => {
|
|
54
|
+
const runAt = when.getTime() === plan.catchUpAt?.getTime() ? now : when;
|
|
55
|
+
const visibleAt = Math.max(runAt.getTime(), now.getTime());
|
|
56
|
+
return {
|
|
57
|
+
jobId: job.id,
|
|
58
|
+
taskType: job.taskType,
|
|
59
|
+
payload: job.payload,
|
|
60
|
+
scheduledFor: when,
|
|
61
|
+
runAt,
|
|
62
|
+
maxAttempts: job.maxAttempts,
|
|
63
|
+
missedAfter: new Date(visibleAt + job.misfireGraceSeconds * constants_1.Time.seconds.toMilliseconds),
|
|
64
|
+
};
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
function toSuperseded(planned) {
|
|
68
|
+
return planned.flatMap(({ job, plan }) => plan.catchUpAt === null ? [] : [{ jobId: job.id, before: plan.catchUpAt }]);
|
|
45
69
|
}
|
|
46
70
|
function planOrDeferJobs(dueJobs, options, onPlanError) {
|
|
47
71
|
const plans = dueJobs.jobs.map((job) => planOrDeferJob(job, dueJobs.now, options, onPlanError));
|
|
@@ -67,7 +91,13 @@ function planOrDeferJob(job, now, options, onPlanError) {
|
|
|
67
91
|
return {
|
|
68
92
|
plannedJob: {
|
|
69
93
|
job,
|
|
70
|
-
plan: {
|
|
94
|
+
plan: {
|
|
95
|
+
occurrences: [],
|
|
96
|
+
skippedOccurrences: 0,
|
|
97
|
+
catchUpAt: null,
|
|
98
|
+
nextRunAt: retryAt,
|
|
99
|
+
lastFiredAt: job.lastFiredAt,
|
|
100
|
+
},
|
|
71
101
|
},
|
|
72
102
|
deferred: true,
|
|
73
103
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"materialize.js","sourceRoot":"","sources":["../../../src/core/materializer/materialize.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"materialize.js","sourceRoot":"","sources":["../../../src/core/materializer/materialize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ScheduledJobMisfirePolicy } from '@n8n/constants';
|
|
2
|
+
import type { ScheduledJob } from '../types';
|
|
3
|
+
import type { PlannedJob } from './transaction';
|
|
4
|
+
export interface MisfireCount {
|
|
5
|
+
taskType: string;
|
|
6
|
+
policy: ScheduledJobMisfirePolicy;
|
|
7
|
+
discarded: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function applyMisfirePolicy(due: Date[], now: Date, job: ScheduledJob, truncated: boolean): {
|
|
10
|
+
occurrences: Date[];
|
|
11
|
+
catchUpAt: Date | null;
|
|
12
|
+
};
|
|
13
|
+
export declare function countMisfires(planned: PlannedJob[]): MisfireCount[];
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.applyMisfirePolicy = applyMisfirePolicy;
|
|
4
|
+
exports.countMisfires = countMisfires;
|
|
5
|
+
const constants_1 = require("@n8n/constants");
|
|
6
|
+
const errors_1 = require("../errors");
|
|
7
|
+
function applyMisfirePolicy(due, now, job, truncated) {
|
|
8
|
+
const graceDeadline = now.getTime() - job.misfireGraceSeconds * constants_1.Time.seconds.toMilliseconds;
|
|
9
|
+
const behind = due.filter((occurrence) => occurrence.getTime() <= now.getTime());
|
|
10
|
+
const ahead = due.slice(behind.length);
|
|
11
|
+
if (behind.length === 0 || behind[0].getTime() > graceDeadline) {
|
|
12
|
+
return { occurrences: due, catchUpAt: null };
|
|
13
|
+
}
|
|
14
|
+
switch (job.misfirePolicy) {
|
|
15
|
+
case constants_1.ScheduledJobMisfirePolicy.Coalesce: {
|
|
16
|
+
if (truncated && ahead.length === 0)
|
|
17
|
+
return { occurrences: [], catchUpAt: null };
|
|
18
|
+
const catchUpAt = behind[behind.length - 1];
|
|
19
|
+
return { occurrences: [catchUpAt, ...ahead], catchUpAt };
|
|
20
|
+
}
|
|
21
|
+
case constants_1.ScheduledJobMisfirePolicy.Skip:
|
|
22
|
+
return { occurrences: ahead, catchUpAt: null };
|
|
23
|
+
default: {
|
|
24
|
+
const exhaustive = job.misfirePolicy;
|
|
25
|
+
throw new errors_1.CorruptStorageRowError(`scheduled_job ${job.id} has unknown misfire policy '${String(exhaustive)}'`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function countMisfires(planned) {
|
|
30
|
+
const grouped = planned
|
|
31
|
+
.filter(({ plan }) => plan.skippedOccurrences > 0)
|
|
32
|
+
.reduce((groups, { job, plan }) => {
|
|
33
|
+
const key = `${job.taskType}:${job.misfirePolicy}`;
|
|
34
|
+
return groups.set(key, {
|
|
35
|
+
taskType: job.taskType,
|
|
36
|
+
policy: job.misfirePolicy,
|
|
37
|
+
discarded: (groups.get(key)?.discarded ?? 0) + plan.skippedOccurrences,
|
|
38
|
+
});
|
|
39
|
+
}, new Map());
|
|
40
|
+
return [...grouped.values()];
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=misfire.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misfire.js","sourceRoot":"","sources":["../../../src/core/materializer/misfire.ts"],"names":[],"mappings":";;;;AAAA,8CAAiE;AAEjE,sCAAmD;AA0BnD,4BACC,GAAW,EACX,GAAS,EACT,GAAiB,EACjB,SAAkB;IAElB,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,mBAAmB,GAAG,gBAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IAE5F,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;QAChE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,QAAQ,GAAG,CAAC,aAAa,EAAE,CAAC;QAC3B,KAAK,qCAAyB,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YACjF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC5C,OAAO,EAAE,WAAW,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;QAC1D,CAAC;QACD,KAAK,qCAAyB,CAAC,IAAI;YAClC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAChD,SAAS,CAAC;YAGT,MAAM,UAAU,GAAU,GAAG,CAAC,aAAa,CAAC;YAC5C,MAAM,IAAI,+BAAsB,CAC/B,iBAAiB,GAAG,CAAC,EAAE,gCAAgC,MAAM,CAAC,UAAU,CAAC,GAAG,CAC5E,CAAC;QACH,CAAC;IACF,CAAC;AACF,CAAC;AAGD,uBAA8B,OAAqB;IAClD,MAAM,OAAO,GAAG,OAAO;SACrB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;SACjD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;QACjC,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,MAAM,EAAE,GAAG,CAAC,aAAa;YACzB,SAAS,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB;SACtE,CAAC,CAAC;IACJ,CAAC,EAAE,IAAI,GAAG,EAAwB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -4,25 +4,34 @@ exports.planOccurrences = planOccurrences;
|
|
|
4
4
|
const constants_1 = require("@n8n/constants");
|
|
5
5
|
const next_run_1 = require("../recurrence/next-run");
|
|
6
6
|
const resolve_1 = require("../recurrence/resolve");
|
|
7
|
+
const misfire_1 = require("./misfire");
|
|
7
8
|
function planOccurrences(job, now, options) {
|
|
8
9
|
const schedule = (0, resolve_1.resolveSchedule)(job, options.defaultTimezone);
|
|
9
10
|
const windowEnd = now.getTime() + options.windowSeconds * constants_1.Time.seconds.toMilliseconds;
|
|
10
11
|
if (job.nextRunAt === null) {
|
|
11
|
-
return {
|
|
12
|
+
return {
|
|
13
|
+
occurrences: [],
|
|
14
|
+
skippedOccurrences: 0,
|
|
15
|
+
catchUpAt: null,
|
|
16
|
+
nextRunAt: null,
|
|
17
|
+
lastFiredAt: job.lastFiredAt,
|
|
18
|
+
};
|
|
12
19
|
}
|
|
13
|
-
const
|
|
20
|
+
const due = [];
|
|
14
21
|
const fires = (0, next_run_1.occurrencesFrom)(schedule, job.nextRunAt);
|
|
15
22
|
let fire = fires.next();
|
|
16
|
-
while (!fire.done &&
|
|
17
|
-
fire.value
|
|
18
|
-
occurrences.length < options.maxPerJob) {
|
|
19
|
-
occurrences.push(fire.value);
|
|
23
|
+
while (!fire.done && fire.value.getTime() <= windowEnd && due.length < options.maxPerJob) {
|
|
24
|
+
due.push(fire.value);
|
|
20
25
|
fire = fires.next();
|
|
21
26
|
}
|
|
27
|
+
const truncated = !fire.done && fire.value.getTime() <= windowEnd;
|
|
28
|
+
const { occurrences, catchUpAt } = (0, misfire_1.applyMisfirePolicy)(due, now, job, truncated);
|
|
22
29
|
return {
|
|
23
30
|
occurrences,
|
|
31
|
+
skippedOccurrences: due.length - occurrences.length,
|
|
32
|
+
catchUpAt,
|
|
24
33
|
nextRunAt: fire.done ? null : fire.value,
|
|
25
|
-
lastFiredAt:
|
|
34
|
+
lastFiredAt: due.at(-1) ?? job.lastFiredAt,
|
|
26
35
|
};
|
|
27
36
|
}
|
|
28
37
|
//# sourceMappingURL=plan.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/core/materializer/plan.ts"],"names":[],"mappings":";;;AAAA,8CAAsC;AAEtC,qDAAyD;AACzD,mDAAwD;
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/core/materializer/plan.ts"],"names":[],"mappings":";;;AAAA,8CAAsC;AAEtC,qDAAyD;AACzD,mDAAwD;AAExD,uCAA+C;AAsC/C,yBACC,GAAiB,EACjB,GAAS,EACT,OAA8E;IAI9E,MAAM,QAAQ,GAAG,IAAA,yBAAe,EAAC,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,GAAG,gBAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IAEtF,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO;YACN,WAAW,EAAE,EAAE;YACf,kBAAkB,EAAE,CAAC;YACrB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,GAAG,CAAC,WAAW;SAC5B,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAW,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,IAAA,0BAAe,EAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IACvD,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACxB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QAC1F,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAGD,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC;IAElE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAA,4BAAkB,EAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IAEhF,OAAO;QACN,WAAW;QACX,kBAAkB,EAAE,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM;QACnD,SAAS;QACT,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;QAGxC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,WAAW;KAC1C,CAAC;AACH,CAAC"}
|
|
@@ -11,6 +11,11 @@ export interface NewOccurrence {
|
|
|
11
11
|
scheduledFor: Date;
|
|
12
12
|
runAt: Date;
|
|
13
13
|
maxAttempts: number;
|
|
14
|
+
missedAfter: Date;
|
|
15
|
+
}
|
|
16
|
+
export interface SupersededOccurrences {
|
|
17
|
+
jobId: number;
|
|
18
|
+
before: Date;
|
|
14
19
|
}
|
|
15
20
|
export interface RecordedOccurrence {
|
|
16
21
|
id: string;
|
|
@@ -28,6 +33,7 @@ export interface DueJobs {
|
|
|
28
33
|
export interface MaterializerTransaction {
|
|
29
34
|
claimDueJobs(limit: number, lookaheadMs: number): Promise<DueJobs | undefined>;
|
|
30
35
|
recordOccurrences(occurrences: NewOccurrence[]): Promise<RecordOccurrencesResult>;
|
|
36
|
+
retireSuperseded(superseded: SupersededOccurrences[]): Promise<number>;
|
|
31
37
|
advanceJobs(planned: PlannedJob[]): Promise<void>;
|
|
32
38
|
}
|
|
33
39
|
export type RunInTransaction = <T>(work: (tx: MaterializerTransaction) => Promise<T>) => Promise<T>;
|
|
@@ -2,6 +2,7 @@ import type { ClaimedTask } from '../types';
|
|
|
2
2
|
export interface ReapResult {
|
|
3
3
|
reclaimed: number;
|
|
4
4
|
deadLettered: number;
|
|
5
|
+
missed: number;
|
|
5
6
|
}
|
|
6
7
|
export interface ExpiredLeaseRef {
|
|
7
8
|
id: string;
|
|
@@ -15,6 +16,7 @@ export interface ReaperTaskStore {
|
|
|
15
16
|
reclaimExpired(ref: ExpiredLeaseRef, backoffMs: number, errorMessage: string): Promise<number>;
|
|
16
17
|
deadLetterExpired(ref: ExpiredLeaseRef, errorMessage: string): Promise<number>;
|
|
17
18
|
completeExpired(ref: ExpiredLeaseRef): Promise<number>;
|
|
19
|
+
retireMissedPending(limit: number): Promise<number>;
|
|
18
20
|
}
|
|
19
21
|
export interface ReaperOptions {
|
|
20
22
|
batchSize: number;
|
|
@@ -22,6 +24,7 @@ export interface ReaperOptions {
|
|
|
22
24
|
export declare const DEFAULT_REAPER_OPTIONS: ReaperOptions;
|
|
23
25
|
export interface ReaperHooks {
|
|
24
26
|
onRowError?: (taskId: string, error: unknown) => void;
|
|
27
|
+
onRetireError?: (error: unknown) => void;
|
|
25
28
|
onDeadLetter?: (task: {
|
|
26
29
|
taskId: string;
|
|
27
30
|
attempts: number;
|
package/dist/core/reaper/reap.js
CHANGED
|
@@ -7,10 +7,26 @@ const LEASE_EXPIRED_MESSAGE = 'Lease expired before completion';
|
|
|
7
7
|
exports.DEFAULT_REAPER_OPTIONS = {
|
|
8
8
|
batchSize: 100,
|
|
9
9
|
};
|
|
10
|
+
async function retireStale(store, options, hooks, signal) {
|
|
11
|
+
if (signal?.aborted === true)
|
|
12
|
+
return 0;
|
|
13
|
+
try {
|
|
14
|
+
return await store.retireMissedPending(options.batchSize);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
try {
|
|
18
|
+
hooks.onRetireError?.(error);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
}
|
|
22
|
+
return 0;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
10
25
|
async function reap(store, options = exports.DEFAULT_REAPER_OPTIONS, hooks = {}, signal) {
|
|
26
|
+
const missed = await retireStale(store, options, hooks, signal);
|
|
11
27
|
const expired = await store.findExpiredLeases(options.batchSize);
|
|
12
28
|
if (expired.length === 0)
|
|
13
|
-
return { reclaimed: 0, deadLettered: 0 };
|
|
29
|
+
return { reclaimed: 0, deadLettered: 0, missed };
|
|
14
30
|
let reclaimed = 0;
|
|
15
31
|
let deadLettered = 0;
|
|
16
32
|
for (const task of expired) {
|
|
@@ -57,6 +73,6 @@ async function reap(store, options = exports.DEFAULT_REAPER_OPTIONS, hooks = {},
|
|
|
57
73
|
}
|
|
58
74
|
}
|
|
59
75
|
}
|
|
60
|
-
return { reclaimed, deadLettered };
|
|
76
|
+
return { reclaimed, deadLettered, missed };
|
|
61
77
|
}
|
|
62
78
|
//# sourceMappingURL=reap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reap.js","sourceRoot":"","sources":["../../../src/core/reaper/reap.ts"],"names":[],"mappings":";;;;AAAA,iDAA8C;AAI9C,MAAM,qBAAqB,GAAG,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"reap.js","sourceRoot":"","sources":["../../../src/core/reaper/reap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ScheduledJobKind, RecurringCronUnit } from '@n8n/constants';
|
|
1
|
+
import type { ScheduledJobKind, RecurringCronUnit, ScheduledJobMisfirePolicy } from '@n8n/constants';
|
|
2
2
|
import type { CronExpression } from 'n8n-workflow';
|
|
3
3
|
export interface CronSchedule {
|
|
4
4
|
kind: 'cron';
|
|
@@ -35,4 +35,6 @@ export interface ScheduledJob {
|
|
|
35
35
|
nextRunAt: Date | null;
|
|
36
36
|
lastFiredAt: Date | null;
|
|
37
37
|
maxAttempts: number;
|
|
38
|
+
misfirePolicy: ScheduledJobMisfirePolicy;
|
|
39
|
+
misfireGraceSeconds: number;
|
|
38
40
|
}
|
|
@@ -16,6 +16,9 @@ export declare const SCHEDULER_ATTRIBUTES: {
|
|
|
16
16
|
readonly claimedJobs: 'n8n.scheduler.claimed_jobs';
|
|
17
17
|
readonly occurrences: 'n8n.scheduler.occurrences';
|
|
18
18
|
readonly deferredJobs: 'n8n.scheduler.deferred_jobs';
|
|
19
|
+
readonly skippedOccurrences: 'n8n.scheduler.skipped_occurrences';
|
|
20
|
+
readonly retiredOccurrences: 'n8n.scheduler.retired_occurrences';
|
|
21
|
+
readonly missed: 'n8n.scheduler.missed';
|
|
19
22
|
readonly retentionDeleted: 'n8n.scheduler.retention_deleted';
|
|
20
23
|
readonly retentionDrained: 'n8n.scheduler.retention_drained';
|
|
21
24
|
readonly provisionInserted: 'n8n.scheduler.provision_inserted';
|
|
@@ -19,6 +19,9 @@ exports.SCHEDULER_ATTRIBUTES = {
|
|
|
19
19
|
claimedJobs: 'n8n.scheduler.claimed_jobs',
|
|
20
20
|
occurrences: 'n8n.scheduler.occurrences',
|
|
21
21
|
deferredJobs: 'n8n.scheduler.deferred_jobs',
|
|
22
|
+
skippedOccurrences: 'n8n.scheduler.skipped_occurrences',
|
|
23
|
+
retiredOccurrences: 'n8n.scheduler.retired_occurrences',
|
|
24
|
+
missed: 'n8n.scheduler.missed',
|
|
22
25
|
retentionDeleted: 'n8n.scheduler.retention_deleted',
|
|
23
26
|
retentionDrained: 'n8n.scheduler.retention_drained',
|
|
24
27
|
provisionInserted: 'n8n.scheduler.provision_inserted',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../src/observability/attributes.ts"],"names":[],"mappings":";;;;AAMa,QAAA,oBAAoB,GAAG;IACnC,MAAM,EAAE,uBAAuB;IAC/B,KAAK,EAAE,sBAAsB;IAC7B,QAAQ,EAAE,yBAAyB;IACnC,IAAI,EAAE,oBAAoB;IAC1B,UAAU,EAAE,2BAA2B;IACvC,YAAY,EAAE,6BAA6B;IAC3C,KAAK,EAAE,sBAAsB;IAC7B,QAAQ,EAAE,wBAAwB;IAClC,WAAW,EAAE,4BAA4B;IACzC,OAAO,EAAE,uBAAuB;IAChC,YAAY,EAAE,6BAA6B;IAC3C,SAAS,EAAE,yBAAyB;IACpC,YAAY,EAAE,6BAA6B;IAC3C,WAAW,EAAE,4BAA4B;IACzC,WAAW,EAAE,2BAA2B;IACxC,YAAY,EAAE,6BAA6B;IAC3C,gBAAgB,EAAE,iCAAiC;IACnD,gBAAgB,EAAE,iCAAiC;IACnD,iBAAiB,EAAE,kCAAkC;IACrD,kBAAkB,EAAE,mCAAmC;IACvD,kBAAkB,EAAE,mCAAmC;IACvD,gBAAgB,EAAE,iCAAiC;IACnD,kBAAkB,EAAE,mCAAmC;IACvD,OAAO,EAAE,wBAAwB;IACjC,SAAS,EAAE,0BAA0B;CAC5B,CAAC;AAOE,QAAA,0BAA0B,GAAG;IAEzC,QAAQ,EAAE,UAAU;IAEpB,SAAS,EAAE,WAAW;IAEtB,OAAO,EAAE,SAAS;CACT,CAAC;AAOE,QAAA,sBAAsB,GAAG;IAErC,SAAS,EAAE,WAAW;IAEtB,WAAW,EAAE,aAAa;IAE1B,YAAY,EAAE,eAAe;IAE7B,gBAAgB,EAAE,oBAAoB;IAEtC,eAAe,EAAE,mBAAmB;CAC3B,CAAC;AAMX,qCAA4C,IAAiB;IAC5D,OAAO;QACN,CAAC,QAAA,oBAAoB,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE;QACtC,CAAC,QAAA,oBAAoB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK;QACxC,CAAC,QAAA,oBAAoB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ;QAC9C,CAAC,QAAA,oBAAoB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU;QAClD,CAAC,QAAA,oBAAoB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ;QAC9C,CAAC,QAAA,oBAAoB,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,WAAW;QACpD,CAAC,QAAA,oBAAoB,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;QACpE,CAAC,QAAA,oBAAoB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;KACtD,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../src/observability/attributes.ts"],"names":[],"mappings":";;;;AAMa,QAAA,oBAAoB,GAAG;IACnC,MAAM,EAAE,uBAAuB;IAC/B,KAAK,EAAE,sBAAsB;IAC7B,QAAQ,EAAE,yBAAyB;IACnC,IAAI,EAAE,oBAAoB;IAC1B,UAAU,EAAE,2BAA2B;IACvC,YAAY,EAAE,6BAA6B;IAC3C,KAAK,EAAE,sBAAsB;IAC7B,QAAQ,EAAE,wBAAwB;IAClC,WAAW,EAAE,4BAA4B;IACzC,OAAO,EAAE,uBAAuB;IAChC,YAAY,EAAE,6BAA6B;IAC3C,SAAS,EAAE,yBAAyB;IACpC,YAAY,EAAE,6BAA6B;IAC3C,WAAW,EAAE,4BAA4B;IACzC,WAAW,EAAE,2BAA2B;IACxC,YAAY,EAAE,6BAA6B;IAC3C,kBAAkB,EAAE,mCAAmC;IACvD,kBAAkB,EAAE,mCAAmC;IACvD,MAAM,EAAE,sBAAsB;IAC9B,gBAAgB,EAAE,iCAAiC;IACnD,gBAAgB,EAAE,iCAAiC;IACnD,iBAAiB,EAAE,kCAAkC;IACrD,kBAAkB,EAAE,mCAAmC;IACvD,kBAAkB,EAAE,mCAAmC;IACvD,gBAAgB,EAAE,iCAAiC;IACnD,kBAAkB,EAAE,mCAAmC;IACvD,OAAO,EAAE,wBAAwB;IACjC,SAAS,EAAE,0BAA0B;CAC5B,CAAC;AAOE,QAAA,0BAA0B,GAAG;IAEzC,QAAQ,EAAE,UAAU;IAEpB,SAAS,EAAE,WAAW;IAEtB,OAAO,EAAE,SAAS;CACT,CAAC;AAOE,QAAA,sBAAsB,GAAG;IAErC,SAAS,EAAE,WAAW;IAEtB,WAAW,EAAE,aAAa;IAE1B,YAAY,EAAE,eAAe;IAE7B,gBAAgB,EAAE,oBAAoB;IAEtC,eAAe,EAAE,mBAAmB;CAC3B,CAAC;AAMX,qCAA4C,IAAiB;IAC5D,OAAO;QACN,CAAC,QAAA,oBAAoB,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE;QACtC,CAAC,QAAA,oBAAoB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK;QACxC,CAAC,QAAA,oBAAoB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ;QAC9C,CAAC,QAAA,oBAAoB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU;QAClD,CAAC,QAAA,oBAAoB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ;QAC9C,CAAC,QAAA,oBAAoB,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,WAAW;QACpD,CAAC,QAAA,oBAAoB,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;QACpE,CAAC,QAAA,oBAAoB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;KACtD,CAAC;AACH,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import type { MisfireCount } from '../core/materializer/materialize';
|
|
1
2
|
export interface SchedulerMetrics {
|
|
2
3
|
recordDispatch(taskType: string): void;
|
|
3
4
|
recordFireOutcome(taskType: string, result: 'success' | 'failure'): void;
|
|
4
5
|
recordRetry(taskType: string): void;
|
|
5
6
|
observeDispatchLagSeconds(taskType: string, seconds: number): void;
|
|
6
7
|
recordMaterialized(occurrences: number, deferredJobs: number): void;
|
|
7
|
-
|
|
8
|
+
recordMisfired(discarded: MisfireCount[]): void;
|
|
9
|
+
recordRetired(retired: number): void;
|
|
10
|
+
recordReaped(reclaimed: number, deadLettered: number, missed: number): void;
|
|
8
11
|
recordDeadLettered(): void;
|
|
9
12
|
recordPruned(deleted: number): void;
|
|
10
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/observability/metrics.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/observability/metrics.ts"],"names":[],"mappings":";;;AAqCa,QAAA,WAAW,GAAqB;IAC5C,cAAc,KAAI,CAAC;IACnB,iBAAiB,KAAI,CAAC;IACtB,WAAW,KAAI,CAAC;IAChB,yBAAyB,KAAI,CAAC;IAC9B,kBAAkB,KAAI,CAAC;IACvB,cAAc,KAAI,CAAC;IACnB,aAAa,KAAI,CAAC;IAClB,YAAY,KAAI,CAAC;IACjB,kBAAkB,KAAI,CAAC;IACvB,YAAY,KAAI,CAAC;CACjB,CAAC"}
|