agenda 6.0.0-alpha.0 → 6.1.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/README.md +48 -2
- package/dist/Job.d.ts +68 -2
- package/dist/Job.js +234 -10
- package/dist/Job.js.map +1 -1
- package/dist/JobProcessor.d.ts +4 -2
- package/dist/JobProcessor.js +59 -11
- package/dist/JobProcessor.js.map +1 -1
- package/dist/decorators/Define.d.ts +33 -0
- package/dist/decorators/Define.js +44 -0
- package/dist/decorators/Define.js.map +1 -0
- package/dist/decorators/Every.d.ts +43 -0
- package/dist/decorators/Every.js +55 -0
- package/dist/decorators/Every.js.map +1 -0
- package/dist/decorators/JobsController.d.ts +43 -0
- package/dist/decorators/JobsController.js +37 -0
- package/dist/decorators/JobsController.js.map +1 -0
- package/dist/decorators/index.d.ts +41 -0
- package/dist/decorators/index.js +46 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/metadata.d.ts +50 -0
- package/dist/decorators/metadata.js +35 -0
- package/dist/decorators/metadata.js.map +1 -0
- package/dist/decorators/register.d.ts +52 -0
- package/dist/decorators/register.js +139 -0
- package/dist/decorators/register.js.map +1 -0
- package/dist/index.d.ts +169 -20
- package/dist/index.js +241 -12
- package/dist/index.js.map +1 -1
- package/dist/notifications/BaseNotificationChannel.d.ts +12 -1
- package/dist/notifications/BaseNotificationChannel.js +30 -0
- package/dist/notifications/BaseNotificationChannel.js.map +1 -1
- package/dist/notifications/InMemoryNotificationChannel.d.ts +2 -1
- package/dist/notifications/InMemoryNotificationChannel.js +7 -0
- package/dist/notifications/InMemoryNotificationChannel.js.map +1 -1
- package/dist/types/AgendaBackend.d.ts +5 -0
- package/dist/types/AgendaConfig.d.ts +1 -0
- package/dist/types/AgendaStatus.d.ts +6 -0
- package/dist/types/DrainOptions.d.ts +37 -0
- package/dist/types/DrainOptions.js +2 -0
- package/dist/types/DrainOptions.js.map +1 -0
- package/dist/types/JobDefinition.d.ts +28 -0
- package/dist/types/JobParameters.d.ts +61 -4
- package/dist/types/JobParameters.js +4 -1
- package/dist/types/JobParameters.js.map +1 -1
- package/dist/types/JobQuery.d.ts +3 -1
- package/dist/types/JobQuery.js.map +1 -1
- package/dist/types/JobRepository.d.ts +10 -0
- package/dist/types/NotificationChannel.d.ts +49 -0
- package/dist/utils/backoff.d.ts +152 -0
- package/dist/utils/backoff.js +167 -0
- package/dist/utils/backoff.js.map +1 -0
- package/dist/utils/dateConstraints.d.ts +48 -0
- package/dist/utils/dateConstraints.js +128 -0
- package/dist/utils/dateConstraints.js.map +1 -0
- package/dist/utils/nextRunAt.d.ts +2 -2
- package/dist/utils/nextRunAt.js +33 -2
- package/dist/utils/nextRunAt.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -34,6 +34,7 @@ See the [6.x Roadmap](https://github.com/agenda/agenda/issues/1610) for details
|
|
|
34
34
|
- Configurable concurrency and locking
|
|
35
35
|
- Real-time job notifications (optional)
|
|
36
36
|
- Sandboxed worker execution via fork mode
|
|
37
|
+
- TypeScript decorators for class-based job definitions
|
|
37
38
|
|
|
38
39
|
## Installation
|
|
39
40
|
|
|
@@ -204,6 +205,35 @@ agenda.define('my-job', async (job) => { /* ... */ }, {
|
|
|
204
205
|
});
|
|
205
206
|
```
|
|
206
207
|
|
|
208
|
+
### Defining Jobs with Decorators
|
|
209
|
+
|
|
210
|
+
For a class-based approach, use TypeScript decorators:
|
|
211
|
+
|
|
212
|
+
```typescript
|
|
213
|
+
import { JobsController, Define, Every, registerJobs, Job } from 'agenda';
|
|
214
|
+
|
|
215
|
+
@JobsController({ namespace: 'email' })
|
|
216
|
+
class EmailJobs {
|
|
217
|
+
@Define({ concurrency: 5 })
|
|
218
|
+
async sendWelcome(job: Job<{ userId: string }>) {
|
|
219
|
+
console.log('Sending welcome to:', job.attrs.data.userId);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
@Every('1 hour')
|
|
223
|
+
async cleanupBounced(job: Job) {
|
|
224
|
+
console.log('Cleaning up bounced emails');
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
registerJobs(agenda, [new EmailJobs()]);
|
|
229
|
+
await agenda.start();
|
|
230
|
+
|
|
231
|
+
// Schedule using namespaced name
|
|
232
|
+
await agenda.now('email.sendWelcome', { userId: '123' });
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
See [Decorators Documentation](./docs/decorators.md) for full details.
|
|
236
|
+
|
|
207
237
|
### Scheduling Jobs
|
|
208
238
|
|
|
209
239
|
```javascript
|
|
@@ -222,10 +252,14 @@ await agenda.every('0 * * * *', 'my-job'); // Cron syntax
|
|
|
222
252
|
### Job Control
|
|
223
253
|
|
|
224
254
|
```javascript
|
|
225
|
-
// Cancel jobs
|
|
255
|
+
// Cancel jobs (removes from database)
|
|
226
256
|
await agenda.cancel({ name: 'my-job' });
|
|
227
257
|
|
|
228
|
-
// Disable/enable
|
|
258
|
+
// Disable/enable jobs globally (by query)
|
|
259
|
+
await agenda.disable({ name: 'my-job' }); // Disable all jobs matching query
|
|
260
|
+
await agenda.enable({ name: 'my-job' }); // Enable all jobs matching query
|
|
261
|
+
|
|
262
|
+
// Disable/enable individual jobs
|
|
229
263
|
const job = await agenda.create('my-job', data);
|
|
230
264
|
job.disable();
|
|
231
265
|
await job.save();
|
|
@@ -247,6 +281,17 @@ await agenda.stop();
|
|
|
247
281
|
|
|
248
282
|
// Drain - waits for running jobs to complete before stopping
|
|
249
283
|
await agenda.drain();
|
|
284
|
+
|
|
285
|
+
// Drain with timeout (30 seconds) - for cloud platforms with shutdown deadlines
|
|
286
|
+
const result = await agenda.drain(30000);
|
|
287
|
+
if (result.timedOut) {
|
|
288
|
+
console.log(`${result.running} jobs still running after timeout`);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
// Drain with AbortSignal - for external control
|
|
292
|
+
const controller = new AbortController();
|
|
293
|
+
setTimeout(() => controller.abort(), 30000);
|
|
294
|
+
await agenda.drain({ signal: controller.signal });
|
|
250
295
|
```
|
|
251
296
|
|
|
252
297
|
Use `drain()` for graceful shutdowns where you want in-progress jobs to finish their work.
|
|
@@ -291,6 +336,7 @@ See [Custom Backend Driver](https://github.com/agenda/agenda/blob/main/docs/cust
|
|
|
291
336
|
- [Full Documentation](https://github.com/agenda/agenda#readme)
|
|
292
337
|
- [Migration Guide (v5 to v6)](https://github.com/agenda/agenda/blob/main/docs/migration-guide-v6.md)
|
|
293
338
|
- [Custom Backend Driver](https://github.com/agenda/agenda/blob/main/docs/custom-database-driver.md)
|
|
339
|
+
- [TypeScript Decorators](./docs/decorators.md)
|
|
294
340
|
- [API Reference](https://agenda.github.io/agenda/)
|
|
295
341
|
|
|
296
342
|
## Related Packages
|
package/dist/Job.d.ts
CHANGED
|
@@ -34,10 +34,16 @@ export declare class Job<DATA = unknown | void> {
|
|
|
34
34
|
type: 'normal' | 'single';
|
|
35
35
|
data: DATA;
|
|
36
36
|
}, byJobProcessor?: boolean);
|
|
37
|
+
/**
|
|
38
|
+
* Fields managed by the job processor that should not be saved by user code.
|
|
39
|
+
* These are excluded in save() to prevent race conditions between user code and the processor.
|
|
40
|
+
*/
|
|
41
|
+
private static readonly PROCESSOR_MANAGED_FIELDS;
|
|
37
42
|
/**
|
|
38
43
|
* Given a job, turn it into an JobParameters object
|
|
44
|
+
* @param excludeProcessorFields - If true, excludes fields managed by the job processor
|
|
39
45
|
*/
|
|
40
|
-
toJson(): JobParameters;
|
|
46
|
+
toJson(excludeProcessorFields?: boolean): JobParameters;
|
|
41
47
|
/**
|
|
42
48
|
* Sets a job to repeat every X amount of time
|
|
43
49
|
* @param interval
|
|
@@ -52,6 +58,24 @@ export declare class Job<DATA = unknown | void> {
|
|
|
52
58
|
* @param time
|
|
53
59
|
*/
|
|
54
60
|
repeatAt(time: string): this;
|
|
61
|
+
/**
|
|
62
|
+
* Sets the start date for the job.
|
|
63
|
+
* The job will not run before this date.
|
|
64
|
+
* @param date - The start date (Date object or string parseable by Date constructor)
|
|
65
|
+
*/
|
|
66
|
+
startDate(dateInput: Date | string): this;
|
|
67
|
+
/**
|
|
68
|
+
* Sets the end date for the job.
|
|
69
|
+
* The job will not run after this date (nextRunAt will be set to null).
|
|
70
|
+
* @param date - The end date (Date object or string parseable by Date constructor)
|
|
71
|
+
*/
|
|
72
|
+
endDate(dateInput: Date | string): this;
|
|
73
|
+
/**
|
|
74
|
+
* Sets the days of the week to skip.
|
|
75
|
+
* The job will not run on these days.
|
|
76
|
+
* @param days - Array of days to skip (0 = Sunday, 1 = Monday, ..., 6 = Saturday)
|
|
77
|
+
*/
|
|
78
|
+
skipDays(days: number[]): this;
|
|
55
79
|
/**
|
|
56
80
|
* if set, a job is forked via node child process and runs in a seperate/own
|
|
57
81
|
* thread
|
|
@@ -73,7 +97,44 @@ export declare class Job<DATA = unknown | void> {
|
|
|
73
97
|
*/
|
|
74
98
|
unique(unique: Required<JobParameters<DATA>>['unique'], opts?: JobParameters['uniqueOpts']): this;
|
|
75
99
|
/**
|
|
76
|
-
*
|
|
100
|
+
* Configure debounce behavior for this job.
|
|
101
|
+
* Debouncing delays job execution and resets the timer on subsequent saves,
|
|
102
|
+
* ensuring the job only runs once after a quiet period.
|
|
103
|
+
*
|
|
104
|
+
* IMPORTANT: Requires a unique constraint to be set via `.unique()`.
|
|
105
|
+
* The unique constraint identifies which jobs should be debounced together.
|
|
106
|
+
*
|
|
107
|
+
* @param delay - Debounce window in milliseconds
|
|
108
|
+
* @param options - Optional configuration (maxWait, strategy)
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```ts
|
|
112
|
+
* // Basic trailing debounce - execute 2s after last save
|
|
113
|
+
* await agenda.create('updateIndex', { entityId: 123 })
|
|
114
|
+
* .unique({ 'data.entityId': 123 })
|
|
115
|
+
* .debounce(2000)
|
|
116
|
+
* .save();
|
|
117
|
+
*
|
|
118
|
+
* // With maxWait - guarantee execution within 30s
|
|
119
|
+
* await agenda.create('syncUser', { userId: 456 })
|
|
120
|
+
* .unique({ 'data.userId': 456 })
|
|
121
|
+
* .debounce(5000, { maxWait: 30000 })
|
|
122
|
+
* .save();
|
|
123
|
+
*
|
|
124
|
+
* // Leading strategy - execute immediately, ignore subsequent calls
|
|
125
|
+
* await agenda.create('notify', { channel: '#alerts' })
|
|
126
|
+
* .unique({ 'data.channel': '#alerts' })
|
|
127
|
+
* .debounce(60000, { strategy: 'leading' })
|
|
128
|
+
* .save();
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
debounce(delay: number, options?: {
|
|
132
|
+
maxWait?: number;
|
|
133
|
+
strategy?: 'trailing' | 'leading';
|
|
134
|
+
}): this;
|
|
135
|
+
/**
|
|
136
|
+
* Schedules a job to run at specified time.
|
|
137
|
+
* Date constraints (startDate, endDate, skipDays) are applied if set.
|
|
77
138
|
* @param time
|
|
78
139
|
*/
|
|
79
140
|
schedule(time: string | Date): this;
|
|
@@ -113,6 +174,11 @@ export declare class Job<DATA = unknown | void> {
|
|
|
113
174
|
*/
|
|
114
175
|
touch(progress?: number): Promise<void>;
|
|
115
176
|
private computeNextRunAt;
|
|
177
|
+
/**
|
|
178
|
+
* Handle automatic retry with backoff strategy
|
|
179
|
+
* @param error - The error that caused the failure
|
|
180
|
+
*/
|
|
181
|
+
private handleRetry;
|
|
116
182
|
run(): Promise<void>;
|
|
117
183
|
runJob(): Promise<void>;
|
|
118
184
|
private isPromise;
|
package/dist/Job.js
CHANGED
|
@@ -4,6 +4,7 @@ import { fork } from 'child_process';
|
|
|
4
4
|
import { datefields } from './types/JobParameters.js';
|
|
5
5
|
import { parsePriority } from './utils/priority.js';
|
|
6
6
|
import { computeFromInterval, computeFromRepeatAt } from './utils/nextRunAt.js';
|
|
7
|
+
import { applyAllDateConstraints } from './utils/dateConstraints.js';
|
|
7
8
|
const log = debug('agenda:job');
|
|
8
9
|
/**
|
|
9
10
|
* @class
|
|
@@ -41,23 +42,40 @@ export class Job {
|
|
|
41
42
|
constructor(agenda, args, byJobProcessor = false) {
|
|
42
43
|
this.agenda = agenda;
|
|
43
44
|
this.byJobProcessor = byJobProcessor;
|
|
44
|
-
// Set attrs to args
|
|
45
45
|
this.attrs = {
|
|
46
46
|
...args,
|
|
47
47
|
// Set defaults if undefined
|
|
48
|
-
priority: parsePriority(args.priority),
|
|
49
48
|
nextRunAt: args.nextRunAt === undefined ? new Date() : args.nextRunAt,
|
|
49
|
+
priority: parsePriority(args.priority),
|
|
50
50
|
type: args.type
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Fields managed by the job processor that should not be saved by user code.
|
|
55
|
+
* These are excluded in save() to prevent race conditions between user code and the processor.
|
|
56
|
+
*/
|
|
57
|
+
static PROCESSOR_MANAGED_FIELDS = new Set([
|
|
58
|
+
'lockedAt',
|
|
59
|
+
'lastRunAt',
|
|
60
|
+
'lastFinishedAt',
|
|
61
|
+
'failedAt',
|
|
62
|
+
'failCount',
|
|
63
|
+
'failReason',
|
|
64
|
+
'progress'
|
|
65
|
+
]);
|
|
53
66
|
/**
|
|
54
67
|
* Given a job, turn it into an JobParameters object
|
|
68
|
+
* @param excludeProcessorFields - If true, excludes fields managed by the job processor
|
|
55
69
|
*/
|
|
56
|
-
toJson() {
|
|
70
|
+
toJson(excludeProcessorFields = false) {
|
|
57
71
|
const result = {};
|
|
58
72
|
const attrs = this.attrs;
|
|
59
73
|
for (const key of Object.keys(attrs)) {
|
|
60
74
|
if (Object.hasOwnProperty.call(attrs, key)) {
|
|
75
|
+
// Skip processor-managed fields if requested
|
|
76
|
+
if (excludeProcessorFields && Job.PROCESSOR_MANAGED_FIELDS.has(key)) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
61
79
|
result[key] =
|
|
62
80
|
datefields.includes(key) && attrs[key]
|
|
63
81
|
? new Date(attrs[key])
|
|
@@ -93,6 +111,47 @@ export class Job {
|
|
|
93
111
|
this.attrs.repeatAt = time;
|
|
94
112
|
return this;
|
|
95
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Sets the start date for the job.
|
|
116
|
+
* The job will not run before this date.
|
|
117
|
+
* @param date - The start date (Date object or string parseable by Date constructor)
|
|
118
|
+
*/
|
|
119
|
+
startDate(dateInput) {
|
|
120
|
+
const d = new Date(dateInput);
|
|
121
|
+
if (Number.isNaN(d.getTime())) {
|
|
122
|
+
throw new Error(`Invalid start date: ${dateInput}`);
|
|
123
|
+
}
|
|
124
|
+
this.attrs.startDate = d;
|
|
125
|
+
return this;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Sets the end date for the job.
|
|
129
|
+
* The job will not run after this date (nextRunAt will be set to null).
|
|
130
|
+
* @param date - The end date (Date object or string parseable by Date constructor)
|
|
131
|
+
*/
|
|
132
|
+
endDate(dateInput) {
|
|
133
|
+
const d = new Date(dateInput);
|
|
134
|
+
if (Number.isNaN(d.getTime())) {
|
|
135
|
+
throw new Error(`Invalid end date: ${dateInput}`);
|
|
136
|
+
}
|
|
137
|
+
this.attrs.endDate = d;
|
|
138
|
+
return this;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Sets the days of the week to skip.
|
|
142
|
+
* The job will not run on these days.
|
|
143
|
+
* @param days - Array of days to skip (0 = Sunday, 1 = Monday, ..., 6 = Saturday)
|
|
144
|
+
*/
|
|
145
|
+
skipDays(days) {
|
|
146
|
+
// Validate days
|
|
147
|
+
for (const day of days) {
|
|
148
|
+
if (day < 0 || day > 6 || !Number.isInteger(day)) {
|
|
149
|
+
throw new Error(`Invalid skip day: ${day}. Must be an integer 0-6 (0=Sunday, 6=Saturday)`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
this.attrs.skipDays = [...new Set(days)]; // Remove duplicates
|
|
153
|
+
return this;
|
|
154
|
+
}
|
|
96
155
|
/**
|
|
97
156
|
* if set, a job is forked via node child process and runs in a seperate/own
|
|
98
157
|
* thread
|
|
@@ -127,12 +186,67 @@ export class Job {
|
|
|
127
186
|
return this;
|
|
128
187
|
}
|
|
129
188
|
/**
|
|
130
|
-
*
|
|
189
|
+
* Configure debounce behavior for this job.
|
|
190
|
+
* Debouncing delays job execution and resets the timer on subsequent saves,
|
|
191
|
+
* ensuring the job only runs once after a quiet period.
|
|
192
|
+
*
|
|
193
|
+
* IMPORTANT: Requires a unique constraint to be set via `.unique()`.
|
|
194
|
+
* The unique constraint identifies which jobs should be debounced together.
|
|
195
|
+
*
|
|
196
|
+
* @param delay - Debounce window in milliseconds
|
|
197
|
+
* @param options - Optional configuration (maxWait, strategy)
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* ```ts
|
|
201
|
+
* // Basic trailing debounce - execute 2s after last save
|
|
202
|
+
* await agenda.create('updateIndex', { entityId: 123 })
|
|
203
|
+
* .unique({ 'data.entityId': 123 })
|
|
204
|
+
* .debounce(2000)
|
|
205
|
+
* .save();
|
|
206
|
+
*
|
|
207
|
+
* // With maxWait - guarantee execution within 30s
|
|
208
|
+
* await agenda.create('syncUser', { userId: 456 })
|
|
209
|
+
* .unique({ 'data.userId': 456 })
|
|
210
|
+
* .debounce(5000, { maxWait: 30000 })
|
|
211
|
+
* .save();
|
|
212
|
+
*
|
|
213
|
+
* // Leading strategy - execute immediately, ignore subsequent calls
|
|
214
|
+
* await agenda.create('notify', { channel: '#alerts' })
|
|
215
|
+
* .unique({ 'data.channel': '#alerts' })
|
|
216
|
+
* .debounce(60000, { strategy: 'leading' })
|
|
217
|
+
* .save();
|
|
218
|
+
* ```
|
|
219
|
+
*/
|
|
220
|
+
debounce(delay, options) {
|
|
221
|
+
const debounceOpts = {
|
|
222
|
+
delay,
|
|
223
|
+
maxWait: options?.maxWait,
|
|
224
|
+
strategy: options?.strategy ?? 'trailing'
|
|
225
|
+
};
|
|
226
|
+
this.attrs.uniqueOpts = {
|
|
227
|
+
...this.attrs.uniqueOpts,
|
|
228
|
+
debounce: debounceOpts
|
|
229
|
+
};
|
|
230
|
+
return this;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Schedules a job to run at specified time.
|
|
234
|
+
* Date constraints (startDate, endDate, skipDays) are applied if set.
|
|
131
235
|
* @param time
|
|
132
236
|
*/
|
|
133
237
|
schedule(time) {
|
|
134
238
|
const d = new Date(time);
|
|
135
|
-
|
|
239
|
+
let nextRunAt = Number.isNaN(d.getTime()) ? date(time) : d;
|
|
240
|
+
// Apply date constraints if any are set
|
|
241
|
+
if (this.attrs.startDate || this.attrs.endDate || this.attrs.skipDays) {
|
|
242
|
+
nextRunAt = applyAllDateConstraints(nextRunAt, {
|
|
243
|
+
startDate: this.attrs.startDate,
|
|
244
|
+
endDate: this.attrs.endDate,
|
|
245
|
+
skipDays: this.attrs.skipDays,
|
|
246
|
+
timezone: this.attrs.repeatTimezone
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
this.attrs.nextRunAt = nextRunAt;
|
|
136
250
|
return this;
|
|
137
251
|
}
|
|
138
252
|
/**
|
|
@@ -204,12 +318,15 @@ export class Job {
|
|
|
204
318
|
}
|
|
205
319
|
// ensure db connection is ready
|
|
206
320
|
await this.agenda.ready;
|
|
207
|
-
|
|
321
|
+
// save() is only called by user code (the job processor uses saveJobState() directly),
|
|
322
|
+
// so we always exclude processor-managed fields to prevent race conditions
|
|
323
|
+
const result = await this.agenda.db.saveJob(this.toJson(true), {
|
|
208
324
|
lastModifiedBy: this.agenda.attrs.name || undefined
|
|
209
325
|
});
|
|
210
326
|
// Update attrs from result
|
|
211
327
|
this.attrs._id = result._id;
|
|
212
328
|
this.attrs.nextRunAt = result.nextRunAt;
|
|
329
|
+
this.attrs.debounceStartedAt = result.debounceStartedAt;
|
|
213
330
|
// Publish notification for real-time processing if channel is configured
|
|
214
331
|
if (this.agenda.hasNotificationChannel()) {
|
|
215
332
|
await this.agenda.publishJobNotification(this);
|
|
@@ -253,16 +370,34 @@ export class Job {
|
|
|
253
370
|
await this.agenda.db.saveJobState(this.attrs, {
|
|
254
371
|
lastModifiedBy: this.agenda.attrs.name || undefined
|
|
255
372
|
});
|
|
373
|
+
// Publish progress state notification if progress was provided (fire-and-forget)
|
|
374
|
+
if (progress !== undefined) {
|
|
375
|
+
this.agenda.publishJobStateNotification(this, 'progress', {
|
|
376
|
+
progress
|
|
377
|
+
});
|
|
378
|
+
}
|
|
256
379
|
}
|
|
257
380
|
computeNextRunAt() {
|
|
258
381
|
try {
|
|
259
382
|
if (this.attrs.repeatInterval) {
|
|
260
|
-
|
|
261
|
-
|
|
383
|
+
const nextRunAt = computeFromInterval(this.attrs);
|
|
384
|
+
this.attrs.nextRunAt = nextRunAt;
|
|
385
|
+
if (nextRunAt) {
|
|
386
|
+
log('[%s:%s] nextRunAt set to [%s]', this.attrs.name, this.attrs._id, nextRunAt.toISOString());
|
|
387
|
+
}
|
|
388
|
+
else {
|
|
389
|
+
log('[%s:%s] nextRunAt set to null (date constraints)', this.attrs.name, this.attrs._id);
|
|
390
|
+
}
|
|
262
391
|
}
|
|
263
392
|
else if (this.attrs.repeatAt) {
|
|
264
|
-
|
|
265
|
-
|
|
393
|
+
const nextRunAt = computeFromRepeatAt(this.attrs);
|
|
394
|
+
this.attrs.nextRunAt = nextRunAt;
|
|
395
|
+
if (nextRunAt) {
|
|
396
|
+
log('[%s:%s] nextRunAt set to [%s]', this.attrs.name, this.attrs._id, nextRunAt.toISOString());
|
|
397
|
+
}
|
|
398
|
+
else {
|
|
399
|
+
log('[%s:%s] nextRunAt set to null (date constraints)', this.attrs.name, this.attrs._id);
|
|
400
|
+
}
|
|
266
401
|
}
|
|
267
402
|
else {
|
|
268
403
|
this.attrs.nextRunAt = null;
|
|
@@ -274,6 +409,53 @@ export class Job {
|
|
|
274
409
|
}
|
|
275
410
|
return this;
|
|
276
411
|
}
|
|
412
|
+
/**
|
|
413
|
+
* Handle automatic retry with backoff strategy
|
|
414
|
+
* @param error - The error that caused the failure
|
|
415
|
+
*/
|
|
416
|
+
async handleRetry(error) {
|
|
417
|
+
const definition = this.agenda.definitions[this.attrs.name];
|
|
418
|
+
// No backoff strategy configured - skip auto-retry
|
|
419
|
+
if (!definition?.backoff) {
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
const context = {
|
|
423
|
+
attempt: this.attrs.failCount || 1,
|
|
424
|
+
error,
|
|
425
|
+
jobName: this.attrs.name,
|
|
426
|
+
jobData: this.attrs.data
|
|
427
|
+
};
|
|
428
|
+
const retryDelay = definition.backoff(context);
|
|
429
|
+
if (retryDelay === null) {
|
|
430
|
+
// No more retries - emit exhausted event
|
|
431
|
+
log('[%s:%s] retry attempts exhausted after %d failures', this.attrs.name, this.attrs._id, this.attrs.failCount);
|
|
432
|
+
this.agenda.emit('retry exhausted', error, this);
|
|
433
|
+
this.agenda.emit(`retry exhausted:${this.attrs.name}`, error, this);
|
|
434
|
+
return;
|
|
435
|
+
}
|
|
436
|
+
// Schedule retry
|
|
437
|
+
const nextRunAt = new Date(Date.now() + retryDelay);
|
|
438
|
+
this.attrs.nextRunAt = nextRunAt;
|
|
439
|
+
log('[%s:%s] scheduling retry #%d in %dms (at %s)', this.attrs.name, this.attrs._id, this.attrs.failCount, retryDelay, nextRunAt.toISOString());
|
|
440
|
+
this.agenda.emit('retry', this, {
|
|
441
|
+
attempt: this.attrs.failCount,
|
|
442
|
+
delay: retryDelay,
|
|
443
|
+
nextRunAt,
|
|
444
|
+
error
|
|
445
|
+
});
|
|
446
|
+
this.agenda.emit(`retry:${this.attrs.name}`, this, {
|
|
447
|
+
attempt: this.attrs.failCount,
|
|
448
|
+
delay: retryDelay,
|
|
449
|
+
nextRunAt,
|
|
450
|
+
error
|
|
451
|
+
});
|
|
452
|
+
// Publish retry state notification for cross-process event propagation (fire-and-forget)
|
|
453
|
+
this.agenda.publishJobStateNotification(this, 'retry', {
|
|
454
|
+
retryAt: nextRunAt,
|
|
455
|
+
retryAttempt: this.attrs.failCount,
|
|
456
|
+
error: error.message
|
|
457
|
+
});
|
|
458
|
+
}
|
|
277
459
|
async run() {
|
|
278
460
|
this.attrs.lastRunAt = new Date();
|
|
279
461
|
log('[%s:%s] setting lastRunAt to: %s', this.attrs.name, this.attrs._id, this.attrs.lastRunAt.toISOString());
|
|
@@ -281,10 +463,15 @@ export class Job {
|
|
|
281
463
|
await this.agenda.db.saveJobState(this.attrs, {
|
|
282
464
|
lastModifiedBy: this.agenda.attrs.name || undefined
|
|
283
465
|
});
|
|
466
|
+
let succeeded = false;
|
|
284
467
|
try {
|
|
285
468
|
this.agenda.emit('start', this);
|
|
286
469
|
this.agenda.emit(`start:${this.attrs.name}`, this);
|
|
287
470
|
log('[%s:%s] starting job', this.attrs.name, this.attrs._id);
|
|
471
|
+
// Publish start state notification for cross-process event propagation (fire-and-forget)
|
|
472
|
+
this.agenda.publishJobStateNotification(this, 'start', {
|
|
473
|
+
lastRunAt: this.attrs.lastRunAt
|
|
474
|
+
});
|
|
288
475
|
if (this.attrs.fork) {
|
|
289
476
|
if (!this.agenda.forkHelper) {
|
|
290
477
|
throw new Error('no forkHelper specified, you need to set a path to a helper script');
|
|
@@ -331,6 +518,13 @@ export class Job {
|
|
|
331
518
|
this.agenda.emit('success', this);
|
|
332
519
|
this.agenda.emit(`success:${this.attrs.name}`, this);
|
|
333
520
|
log('[%s:%s] has succeeded', this.attrs.name, this.attrs._id);
|
|
521
|
+
succeeded = true;
|
|
522
|
+
// Publish success state notification for cross-process event propagation (fire-and-forget)
|
|
523
|
+
this.agenda.publishJobStateNotification(this, 'success', {
|
|
524
|
+
lastRunAt: this.attrs.lastRunAt,
|
|
525
|
+
lastFinishedAt: this.attrs.lastFinishedAt,
|
|
526
|
+
duration: this.attrs.lastFinishedAt.getTime() - (this.attrs.lastRunAt?.getTime() || 0)
|
|
527
|
+
});
|
|
334
528
|
}
|
|
335
529
|
catch (error) {
|
|
336
530
|
log('[%s:%s] unknown error occurred', this.attrs.name, this.attrs._id);
|
|
@@ -338,6 +532,13 @@ export class Job {
|
|
|
338
532
|
this.agenda.emit('fail', error, this);
|
|
339
533
|
this.agenda.emit(`fail:${this.attrs.name}`, error, this);
|
|
340
534
|
log('[%s:%s] has failed [%s]', this.attrs.name, this.attrs._id, error.message);
|
|
535
|
+
// Publish fail state notification for cross-process event propagation (fire-and-forget)
|
|
536
|
+
this.agenda.publishJobStateNotification(this, 'fail', {
|
|
537
|
+
error: error.message,
|
|
538
|
+
failCount: this.attrs.failCount
|
|
539
|
+
});
|
|
540
|
+
// Handle automatic retry with backoff strategy
|
|
541
|
+
await this.handleRetry(error);
|
|
341
542
|
}
|
|
342
543
|
finally {
|
|
343
544
|
this.forkedChild = undefined;
|
|
@@ -356,6 +557,29 @@ export class Job {
|
|
|
356
557
|
this.agenda.emit('complete', this);
|
|
357
558
|
this.agenda.emit(`complete:${this.attrs.name}`, this);
|
|
358
559
|
log('[%s:%s] job finished at [%s] and was unlocked', this.attrs.name, this.attrs._id, this.attrs.lastFinishedAt);
|
|
560
|
+
// Publish complete state notification for cross-process event propagation (fire-and-forget)
|
|
561
|
+
const duration = this.attrs.lastFinishedAt && this.attrs.lastRunAt
|
|
562
|
+
? this.attrs.lastFinishedAt.getTime() - this.attrs.lastRunAt.getTime()
|
|
563
|
+
: undefined;
|
|
564
|
+
this.agenda.publishJobStateNotification(this, 'complete', {
|
|
565
|
+
lastRunAt: this.attrs.lastRunAt,
|
|
566
|
+
lastFinishedAt: this.attrs.lastFinishedAt,
|
|
567
|
+
duration
|
|
568
|
+
});
|
|
569
|
+
// Auto-remove completed one-time jobs
|
|
570
|
+
if (succeeded && !this.attrs.nextRunAt) {
|
|
571
|
+
const definition = this.agenda.definitions[this.attrs.name];
|
|
572
|
+
const shouldRemove = definition?.removeOnComplete ?? this.agenda.attrs.removeOnComplete;
|
|
573
|
+
if (shouldRemove) {
|
|
574
|
+
try {
|
|
575
|
+
await this.remove();
|
|
576
|
+
log('[%s:%s] auto-removed completed one-time job', this.attrs.name, this.attrs._id);
|
|
577
|
+
}
|
|
578
|
+
catch (err) {
|
|
579
|
+
log('[%s:%s] failed to auto-remove job', this.attrs.name, this.attrs._id, err);
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
}
|
|
359
583
|
}
|
|
360
584
|
}
|
|
361
585
|
async runJob() {
|
package/dist/Job.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Job.js","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Job.js","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"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"}
|
package/dist/JobProcessor.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { AgendaStatus } from './types/AgendaStatus.js';
|
|
2
2
|
import type { Agenda, JobWithId } from './index.js';
|
|
3
3
|
import type { NotificationChannel } from './types/NotificationChannel.js';
|
|
4
|
+
import type { DrainOptions, DrainResult } from './types/DrainOptions.js';
|
|
4
5
|
/**
|
|
5
6
|
* @class
|
|
6
7
|
* Process methods for jobs
|
|
@@ -27,9 +28,10 @@ export declare class JobProcessor {
|
|
|
27
28
|
/**
|
|
28
29
|
* Waits for all currently running jobs to finish, then stops the processor.
|
|
29
30
|
* Unlike stop(), this method does not immediately return - it waits for graceful completion.
|
|
30
|
-
* @
|
|
31
|
+
* @param options - Optional timeout or AbortSignal, or timeout number directly
|
|
32
|
+
* @returns Promise that resolves with drain result when complete, timed out, or aborted
|
|
31
33
|
*/
|
|
32
|
-
drain(): Promise<
|
|
34
|
+
drain(options?: number | DrainOptions): Promise<DrainResult>;
|
|
33
35
|
/**
|
|
34
36
|
* Handle incoming job notification - triggers immediate processing
|
|
35
37
|
*/
|