@lara-node/queue 0.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/dist/index.cjs +1782 -0
- package/dist/index.d.cts +604 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.ts +604 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1744 -0
- package/dist/index.js.map +1 -0
- package/dist/queue.config.cjs +41 -0
- package/dist/queue.config.js +38 -0
- package/dist/queue.config.js.map +1 -0
- package/package.json +45 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,604 @@
|
|
|
1
|
+
import { EventEmitter } from "events";
|
|
2
|
+
import { ServiceProvider } from "@lara-node/core";
|
|
3
|
+
|
|
4
|
+
//#region src/types.d.ts
|
|
5
|
+
interface SerializedJob {
|
|
6
|
+
id: string;
|
|
7
|
+
uuid: string;
|
|
8
|
+
displayName: string;
|
|
9
|
+
job: string;
|
|
10
|
+
data: string;
|
|
11
|
+
queue: string;
|
|
12
|
+
attempts: number;
|
|
13
|
+
maxTries: number;
|
|
14
|
+
maxExceptions: number;
|
|
15
|
+
exceptionCount: number;
|
|
16
|
+
timeout: number;
|
|
17
|
+
backoff: number | number[];
|
|
18
|
+
retryUntil: number | null;
|
|
19
|
+
encrypted: boolean;
|
|
20
|
+
createdAt: number;
|
|
21
|
+
availableAt: number;
|
|
22
|
+
reservedAt: number | null;
|
|
23
|
+
}
|
|
24
|
+
interface FailedJob {
|
|
25
|
+
id: number;
|
|
26
|
+
uuid: string;
|
|
27
|
+
connection: string;
|
|
28
|
+
queue: string;
|
|
29
|
+
payload: string;
|
|
30
|
+
exception: string;
|
|
31
|
+
failedAt: Date;
|
|
32
|
+
}
|
|
33
|
+
interface QueueDriverInterface {
|
|
34
|
+
size(queue?: string): Promise<number>;
|
|
35
|
+
push(job: SerializedJob, queue?: string): Promise<string>;
|
|
36
|
+
later(delay: number, job: SerializedJob, queue?: string): Promise<string>;
|
|
37
|
+
pop(queue?: string): Promise<SerializedJob | null>;
|
|
38
|
+
delete(job: SerializedJob, queue?: string): Promise<void>;
|
|
39
|
+
release(job: SerializedJob, delay: number, queue?: string): Promise<void>;
|
|
40
|
+
clear(queue?: string): Promise<number>;
|
|
41
|
+
getJobs(queue?: string): Promise<SerializedJob[]>;
|
|
42
|
+
}
|
|
43
|
+
interface FailedJobsInterface {
|
|
44
|
+
logFailed(connection: string, queue: string, job: SerializedJob, exception: Error): Promise<void>;
|
|
45
|
+
getFailedJobs(): Promise<any[]>;
|
|
46
|
+
retryFailed(uuid: string): Promise<boolean>;
|
|
47
|
+
forgetFailed(uuid: string): Promise<boolean>;
|
|
48
|
+
flushFailed(): Promise<number>;
|
|
49
|
+
}
|
|
50
|
+
interface JobOptions {
|
|
51
|
+
queue?: string;
|
|
52
|
+
connection?: string;
|
|
53
|
+
delay?: number;
|
|
54
|
+
tries?: number;
|
|
55
|
+
timeout?: number;
|
|
56
|
+
backoff?: number | number[];
|
|
57
|
+
retryUntil?: Date;
|
|
58
|
+
uniqueId?: string;
|
|
59
|
+
uniqueFor?: number;
|
|
60
|
+
}
|
|
61
|
+
interface ScheduleFrequency {
|
|
62
|
+
expression: string;
|
|
63
|
+
timezone?: string;
|
|
64
|
+
}
|
|
65
|
+
interface ScheduledTask {
|
|
66
|
+
name: string;
|
|
67
|
+
command: string | (() => Promise<void>);
|
|
68
|
+
frequency: ScheduleFrequency;
|
|
69
|
+
description?: string;
|
|
70
|
+
withoutOverlapping?: boolean;
|
|
71
|
+
onOneServer?: boolean;
|
|
72
|
+
evenInMaintenanceMode?: boolean;
|
|
73
|
+
lastRun?: Date;
|
|
74
|
+
nextRun?: Date;
|
|
75
|
+
}
|
|
76
|
+
type JobStatus = "pending" | "processing" | "completed" | "failed" | "released";
|
|
77
|
+
interface WorkerOptions {
|
|
78
|
+
connection?: string;
|
|
79
|
+
queue?: string | string[];
|
|
80
|
+
delay?: number;
|
|
81
|
+
memory?: number;
|
|
82
|
+
timeout?: number;
|
|
83
|
+
sleep?: number;
|
|
84
|
+
maxTries?: number;
|
|
85
|
+
maxJobs?: number;
|
|
86
|
+
maxTime?: number;
|
|
87
|
+
force?: boolean;
|
|
88
|
+
stopWhenEmpty?: boolean;
|
|
89
|
+
rest?: number;
|
|
90
|
+
verbose?: boolean;
|
|
91
|
+
/** Horizon worker ID — enables Cache-based pause/resume/stop signals from the dashboard. */
|
|
92
|
+
workerId?: string;
|
|
93
|
+
}
|
|
94
|
+
interface JobEvent {
|
|
95
|
+
connectionName: string;
|
|
96
|
+
job: SerializedJob;
|
|
97
|
+
}
|
|
98
|
+
interface JobProcessingEvent extends JobEvent {}
|
|
99
|
+
interface JobProcessedEvent extends JobEvent {}
|
|
100
|
+
interface JobFailedEvent extends JobEvent {
|
|
101
|
+
exception: Error;
|
|
102
|
+
}
|
|
103
|
+
interface JobExceptionOccurredEvent extends JobEvent {
|
|
104
|
+
exception: Error;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=types.d.ts.map
|
|
107
|
+
//#endregion
|
|
108
|
+
//#region src/Job.d.ts
|
|
109
|
+
declare function encryptPayload(data: string): string;
|
|
110
|
+
declare function decryptPayload(data: string): string;
|
|
111
|
+
declare function registerJob(name: string, jobClass: new () => Job): void;
|
|
112
|
+
declare function getJobClass(name: string): (new () => Job) | undefined;
|
|
113
|
+
declare function getRegisteredJobs(): Map<string, new () => Job>;
|
|
114
|
+
declare function Queueable(name?: string): <T extends new (...args: any[]) => Job>(constructor: T) => T;
|
|
115
|
+
declare abstract class Job {
|
|
116
|
+
/**
|
|
117
|
+
* The name of the queue the job should be sent to.
|
|
118
|
+
*/
|
|
119
|
+
queue: string;
|
|
120
|
+
/**
|
|
121
|
+
* The name of the connection the job should be sent to.
|
|
122
|
+
*/
|
|
123
|
+
connection: string;
|
|
124
|
+
/**
|
|
125
|
+
* The number of times the job may be attempted.
|
|
126
|
+
*/
|
|
127
|
+
tries: number;
|
|
128
|
+
/**
|
|
129
|
+
* The maximum number of unhandled exceptions to allow before failing.
|
|
130
|
+
*/
|
|
131
|
+
maxExceptions: number;
|
|
132
|
+
/**
|
|
133
|
+
* The number of seconds the job can run before timing out.
|
|
134
|
+
*/
|
|
135
|
+
timeout: number;
|
|
136
|
+
/**
|
|
137
|
+
* The number of seconds to wait before retrying the job.
|
|
138
|
+
*/
|
|
139
|
+
backoff: number | number[];
|
|
140
|
+
/**
|
|
141
|
+
* Indicate if the job should be encrypted.
|
|
142
|
+
*/
|
|
143
|
+
shouldBeEncrypted: boolean;
|
|
144
|
+
/**
|
|
145
|
+
* The unique ID of the job (for unique jobs).
|
|
146
|
+
*/
|
|
147
|
+
uniqueId?: string;
|
|
148
|
+
/**
|
|
149
|
+
* The number of seconds the unique lock should be held.
|
|
150
|
+
*/
|
|
151
|
+
uniqueFor?: number;
|
|
152
|
+
/**
|
|
153
|
+
* Number of seconds to delay the job.
|
|
154
|
+
*/
|
|
155
|
+
delay: number;
|
|
156
|
+
/**
|
|
157
|
+
* Job UUID.
|
|
158
|
+
*/
|
|
159
|
+
private _uuid;
|
|
160
|
+
/**
|
|
161
|
+
* Current attempt number.
|
|
162
|
+
*/
|
|
163
|
+
private _attempts;
|
|
164
|
+
/**
|
|
165
|
+
* Execute the job.
|
|
166
|
+
*/
|
|
167
|
+
abstract handle(): Promise<void>;
|
|
168
|
+
/**
|
|
169
|
+
* Handle a job failure.
|
|
170
|
+
*/
|
|
171
|
+
failed(exception: Error): void;
|
|
172
|
+
/**
|
|
173
|
+
* Determine the time at which the job should timeout.
|
|
174
|
+
*/
|
|
175
|
+
retryUntil(): Date | null;
|
|
176
|
+
/**
|
|
177
|
+
* Get the middleware the job should pass through.
|
|
178
|
+
*/
|
|
179
|
+
middleware(): any[];
|
|
180
|
+
/**
|
|
181
|
+
* Get the tags that should be assigned to the job.
|
|
182
|
+
*/
|
|
183
|
+
tags(): string[];
|
|
184
|
+
get uuid(): string;
|
|
185
|
+
get attempts(): number;
|
|
186
|
+
/**
|
|
187
|
+
* Get the display name for the queued job.
|
|
188
|
+
*/
|
|
189
|
+
displayName(): string;
|
|
190
|
+
/**
|
|
191
|
+
* Prepare the job for serialization.
|
|
192
|
+
*/
|
|
193
|
+
protected getSerializableProperties(): Record<string, any>;
|
|
194
|
+
/**
|
|
195
|
+
* Serialize the job to a format that can be stored.
|
|
196
|
+
*/
|
|
197
|
+
serialize(): SerializedJob;
|
|
198
|
+
/**
|
|
199
|
+
* Restore the job from serialized data.
|
|
200
|
+
*/
|
|
201
|
+
static deserialize<T extends Job>(serialized: SerializedJob): T | null;
|
|
202
|
+
/**
|
|
203
|
+
* Dispatch the job with the given arguments.
|
|
204
|
+
*/
|
|
205
|
+
static dispatch<T extends Job>(this: new () => T, ...args: any[]): PendingDispatch<T>;
|
|
206
|
+
/**
|
|
207
|
+
* Dispatch the job synchronously.
|
|
208
|
+
*/
|
|
209
|
+
static dispatchSync<T extends Job>(this: new () => T): Promise<void>;
|
|
210
|
+
/**
|
|
211
|
+
* Dispatch the job after the response is sent.
|
|
212
|
+
*/
|
|
213
|
+
static dispatchAfterResponse<T extends Job>(this: new () => T): PendingDispatch<T>;
|
|
214
|
+
onQueue(queue: string): this;
|
|
215
|
+
onConnection(connection: string): this;
|
|
216
|
+
withDelay(seconds: number): this;
|
|
217
|
+
withTries(tries: number): this;
|
|
218
|
+
withTimeout(seconds: number): this;
|
|
219
|
+
withBackoff(backoff: number | number[]): this;
|
|
220
|
+
}
|
|
221
|
+
declare class PendingDispatch<T extends Job> {
|
|
222
|
+
private job;
|
|
223
|
+
private _afterResponse;
|
|
224
|
+
constructor(job: T);
|
|
225
|
+
onQueue(queue: string): this;
|
|
226
|
+
onConnection(connection: string): this;
|
|
227
|
+
delay(seconds: number): this;
|
|
228
|
+
tries(n: number): this;
|
|
229
|
+
timeout(seconds: number): this;
|
|
230
|
+
backoff(b: number | number[]): this;
|
|
231
|
+
maxExceptions(n: number): this;
|
|
232
|
+
afterResponse(): this;
|
|
233
|
+
dispatch(): Promise<string>;
|
|
234
|
+
}
|
|
235
|
+
declare function dispatch<T extends Job>(job: T): PendingDispatch<T>;
|
|
236
|
+
//# sourceMappingURL=Job.d.ts.map
|
|
237
|
+
//#endregion
|
|
238
|
+
//#region src/Queue.d.ts
|
|
239
|
+
declare class QueueManager {
|
|
240
|
+
private connections;
|
|
241
|
+
private defaultConnection;
|
|
242
|
+
constructor();
|
|
243
|
+
/**
|
|
244
|
+
* Get a queue connection instance.
|
|
245
|
+
* All drivers are cached — database queries are stateless per-call so sharing
|
|
246
|
+
* the driver instance is safe and avoids repeated object allocation on every poll.
|
|
247
|
+
*/
|
|
248
|
+
connection(name?: string): QueueDriverInterface;
|
|
249
|
+
/**
|
|
250
|
+
* Resolve a queue connection instance.
|
|
251
|
+
*/
|
|
252
|
+
private resolve;
|
|
253
|
+
/**
|
|
254
|
+
* Get the default connection name.
|
|
255
|
+
*/
|
|
256
|
+
getDefaultDriver(): string;
|
|
257
|
+
/**
|
|
258
|
+
* Set the default connection name.
|
|
259
|
+
*/
|
|
260
|
+
setDefaultDriver(name: string): void;
|
|
261
|
+
/**
|
|
262
|
+
* Push a new job onto the queue.
|
|
263
|
+
* Respects uniqueId/uniqueFor — silently deduplicates if a lock already exists.
|
|
264
|
+
*/
|
|
265
|
+
push(job: Job, queue?: string): Promise<string>;
|
|
266
|
+
/**
|
|
267
|
+
* Release the unique lock for a job after it completes or permanently fails.
|
|
268
|
+
*/
|
|
269
|
+
releaseUniqueLock(job: SerializedJob): Promise<void>;
|
|
270
|
+
/**
|
|
271
|
+
* Push a new job onto the queue after a delay.
|
|
272
|
+
*/
|
|
273
|
+
later(delay: number, job: Job, queue?: string): Promise<string>;
|
|
274
|
+
/**
|
|
275
|
+
* Push a raw payload onto the queue.
|
|
276
|
+
*/
|
|
277
|
+
pushRaw(payload: SerializedJob, queue?: string, connection?: string): Promise<string>;
|
|
278
|
+
/**
|
|
279
|
+
* Push multiple jobs onto the queue.
|
|
280
|
+
*/
|
|
281
|
+
bulk(jobs: Job[], queue?: string): Promise<string[]>;
|
|
282
|
+
/**
|
|
283
|
+
* Pop the next job from the queue.
|
|
284
|
+
*/
|
|
285
|
+
pop(queue?: string, connection?: string): Promise<SerializedJob | null>;
|
|
286
|
+
/**
|
|
287
|
+
* Get the size of the queue.
|
|
288
|
+
*/
|
|
289
|
+
size(queue?: string, connection?: string): Promise<number>;
|
|
290
|
+
/**
|
|
291
|
+
* Clear all jobs from the queue.
|
|
292
|
+
*/
|
|
293
|
+
clear(queue?: string, connection?: string): Promise<number>;
|
|
294
|
+
/**
|
|
295
|
+
* Get all jobs from a queue.
|
|
296
|
+
*/
|
|
297
|
+
getJobs(queue?: string, connection?: string): Promise<SerializedJob[]>;
|
|
298
|
+
private asFailedDriver;
|
|
299
|
+
logFailed(connectionName: string, queue: string, job: SerializedJob, exception: Error): Promise<void>;
|
|
300
|
+
getFailedJobs(connection?: string): Promise<any[]>;
|
|
301
|
+
retryFailed(uuid: string, connection?: string): Promise<boolean>;
|
|
302
|
+
forgetFailed(uuid: string, connection?: string): Promise<boolean>;
|
|
303
|
+
flushFailed(connection?: string): Promise<number>;
|
|
304
|
+
}
|
|
305
|
+
declare const Queue: QueueManager;
|
|
306
|
+
//#endregion
|
|
307
|
+
//#region src/Worker.d.ts
|
|
308
|
+
declare class Worker extends EventEmitter {
|
|
309
|
+
private running;
|
|
310
|
+
private paused;
|
|
311
|
+
private shouldQuit;
|
|
312
|
+
private jobsProcessed;
|
|
313
|
+
private startTime;
|
|
314
|
+
private currentJob;
|
|
315
|
+
private idleTicks;
|
|
316
|
+
private static readonly IDLE_CHECK_INTERVAL;
|
|
317
|
+
private connectionName;
|
|
318
|
+
private queues;
|
|
319
|
+
private options;
|
|
320
|
+
/** Horizon worker ID — enables Cache-based control signals from the dashboard. */
|
|
321
|
+
private readonly workerId?;
|
|
322
|
+
private readonly restartKey;
|
|
323
|
+
private readonly horizonCtrlPrefix;
|
|
324
|
+
constructor(connectionName?: string, queues?: string | string[], options?: WorkerOptions);
|
|
325
|
+
daemon(): Promise<void>;
|
|
326
|
+
runNextJob(): Promise<boolean>;
|
|
327
|
+
stop(): void;
|
|
328
|
+
pause(): void;
|
|
329
|
+
resume(): void;
|
|
330
|
+
private getNextJob;
|
|
331
|
+
private process;
|
|
332
|
+
private handleSuccess;
|
|
333
|
+
private handleFailure;
|
|
334
|
+
private calculateBackoff;
|
|
335
|
+
private memoryExceeded;
|
|
336
|
+
private isInMaintenanceMode;
|
|
337
|
+
private shouldRestart;
|
|
338
|
+
/** Read and immediately clear a Horizon dashboard control signal for this worker. */
|
|
339
|
+
private checkHorizonSignal;
|
|
340
|
+
private sleep;
|
|
341
|
+
private registerSignalHandlers;
|
|
342
|
+
isRunning(): boolean;
|
|
343
|
+
isPaused(): boolean;
|
|
344
|
+
getJobsProcessed(): number;
|
|
345
|
+
getCurrentJob(): SerializedJob | null;
|
|
346
|
+
getRuntime(): number;
|
|
347
|
+
getStatus(): {
|
|
348
|
+
running: boolean;
|
|
349
|
+
paused: boolean;
|
|
350
|
+
jobsProcessed: number;
|
|
351
|
+
runtime: number;
|
|
352
|
+
currentJob: SerializedJob | null;
|
|
353
|
+
memory: number;
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
//# sourceMappingURL=Worker.d.ts.map
|
|
357
|
+
//#endregion
|
|
358
|
+
//#region src/Scheduler.d.ts
|
|
359
|
+
interface ScheduledTask$1 {
|
|
360
|
+
name: string;
|
|
361
|
+
callback: () => Promise<void> | void;
|
|
362
|
+
expression: string;
|
|
363
|
+
timezone?: string;
|
|
364
|
+
description?: string;
|
|
365
|
+
withoutOverlapping: boolean;
|
|
366
|
+
onOneServer: boolean;
|
|
367
|
+
evenInMaintenanceMode: boolean;
|
|
368
|
+
runInBackground: boolean;
|
|
369
|
+
conditions: Array<() => boolean | Promise<boolean>>;
|
|
370
|
+
skipConditions: Array<() => boolean | Promise<boolean>>;
|
|
371
|
+
betweenStart?: string;
|
|
372
|
+
betweenEnd?: string;
|
|
373
|
+
onSuccessHook?: (task: ScheduledTask$1) => void;
|
|
374
|
+
onFailureHook?: (task: ScheduledTask$1, error: Error) => void;
|
|
375
|
+
lastRun?: Date;
|
|
376
|
+
nextRun?: Date;
|
|
377
|
+
isRunning: boolean;
|
|
378
|
+
}
|
|
379
|
+
declare class Schedule {
|
|
380
|
+
private tasks;
|
|
381
|
+
private running;
|
|
382
|
+
private events;
|
|
383
|
+
private readonly cronPartsCache;
|
|
384
|
+
call(callback: () => Promise<void> | void): ScheduledTaskBuilder;
|
|
385
|
+
command(command: string, args?: string[]): ScheduledTaskBuilder;
|
|
386
|
+
exec(command: string): ScheduledTaskBuilder;
|
|
387
|
+
job<T extends {
|
|
388
|
+
dispatch: () => {
|
|
389
|
+
dispatch: () => Promise<string>;
|
|
390
|
+
};
|
|
391
|
+
}>(JobClass: T, queue?: string): ScheduledTaskBuilder;
|
|
392
|
+
private defaultTask;
|
|
393
|
+
updateNextTaskRun(task: ScheduledTask$1): void;
|
|
394
|
+
getTasks(): ScheduledTask$1[];
|
|
395
|
+
getDueTasks(): ScheduledTask$1[];
|
|
396
|
+
private isDue;
|
|
397
|
+
private matchesCronExpression;
|
|
398
|
+
private matchCronPart;
|
|
399
|
+
runDueTasks(): Promise<void>;
|
|
400
|
+
private options;
|
|
401
|
+
private runTask;
|
|
402
|
+
start(): Promise<void>;
|
|
403
|
+
stop(): void;
|
|
404
|
+
isRunning(): boolean;
|
|
405
|
+
on(event: "task:start" | "task:success" | "task:failed", listener: (task: ScheduledTask$1, error?: any) => void): void;
|
|
406
|
+
private sleep;
|
|
407
|
+
}
|
|
408
|
+
declare class ScheduledTaskBuilder {
|
|
409
|
+
private task;
|
|
410
|
+
constructor(task: ScheduledTask$1);
|
|
411
|
+
everyMinute(): this;
|
|
412
|
+
everyTwoMinutes(): this;
|
|
413
|
+
everyThreeMinutes(): this;
|
|
414
|
+
everyFiveMinutes(): this;
|
|
415
|
+
everyTenMinutes(): this;
|
|
416
|
+
everyFifteenMinutes(): this;
|
|
417
|
+
everyTwentyMinutes(): this;
|
|
418
|
+
everyThirtyMinutes(): this;
|
|
419
|
+
everyFortyFiveMinutes(): this;
|
|
420
|
+
/** Run every N minutes (arbitrary interval). */
|
|
421
|
+
everyNMinutes(n: number): this;
|
|
422
|
+
hourly(): this;
|
|
423
|
+
hourlyAt(minute: number): this;
|
|
424
|
+
everyTwoHours(): this;
|
|
425
|
+
everyFourHours(): this;
|
|
426
|
+
everySixHours(): this;
|
|
427
|
+
/** Run every N hours (arbitrary interval). */
|
|
428
|
+
everyNHours(n: number): this;
|
|
429
|
+
daily(): this;
|
|
430
|
+
dailyAt(time: string): this;
|
|
431
|
+
twiceDaily(firstHour?: number, secondHour?: number): this;
|
|
432
|
+
twiceDailyAt(firstHour: number, firstMinute: number, secondHour: number, secondMinute: number): this;
|
|
433
|
+
weekly(): this;
|
|
434
|
+
weeklyOn(dayOfWeek: number, time?: string): this;
|
|
435
|
+
monthly(): this;
|
|
436
|
+
monthlyOn(day: number, time?: string): this;
|
|
437
|
+
/**
|
|
438
|
+
* Run on the last day of the month at midnight.
|
|
439
|
+
* Uses day 28 as a universally-safe proxy (real last-day check runs at runtime).
|
|
440
|
+
*/
|
|
441
|
+
lastDayOfMonth(time?: string): this;
|
|
442
|
+
quarterly(): this;
|
|
443
|
+
yearly(): this;
|
|
444
|
+
yearlyOn(month: number, day?: number, time?: string): this;
|
|
445
|
+
weekdays(): this;
|
|
446
|
+
weekends(): this;
|
|
447
|
+
sundays(): this;
|
|
448
|
+
mondays(): this;
|
|
449
|
+
tuesdays(): this;
|
|
450
|
+
wednesdays(): this;
|
|
451
|
+
thursdays(): this;
|
|
452
|
+
fridays(): this;
|
|
453
|
+
saturdays(): this;
|
|
454
|
+
private _setDow;
|
|
455
|
+
/**
|
|
456
|
+
* Only run the task if current time is between start and end (inclusive).
|
|
457
|
+
* @param start "HH:MM"
|
|
458
|
+
* @param end "HH:MM"
|
|
459
|
+
*/
|
|
460
|
+
between(start: string, end: string): this;
|
|
461
|
+
/** Only run when all provided callbacks return true. */
|
|
462
|
+
when(callback: () => boolean | Promise<boolean>): this;
|
|
463
|
+
/** Skip the task when callback returns true. */
|
|
464
|
+
skip(callback: () => boolean | Promise<boolean>): this;
|
|
465
|
+
cron(expression: string): this;
|
|
466
|
+
name(name: string): this;
|
|
467
|
+
description(description: string): this;
|
|
468
|
+
timezone(timezone: string): this;
|
|
469
|
+
withoutOverlapping(): this;
|
|
470
|
+
onOneServer(): this;
|
|
471
|
+
evenInMaintenanceMode(): this;
|
|
472
|
+
runInBackground(): this;
|
|
473
|
+
onSuccess(callback: (task: ScheduledTask$1) => void): this;
|
|
474
|
+
onFailure(callback: (task: ScheduledTask$1, error: Error) => void): this;
|
|
475
|
+
}
|
|
476
|
+
declare const scheduler: Schedule;
|
|
477
|
+
//# sourceMappingURL=Scheduler.d.ts.map
|
|
478
|
+
//#endregion
|
|
479
|
+
//#region src/Drivers/SyncDriver.d.ts
|
|
480
|
+
declare class SyncDriver implements QueueDriverInterface {
|
|
481
|
+
private jobs;
|
|
482
|
+
size(queue?: string): Promise<number>;
|
|
483
|
+
push(job: SerializedJob, queue?: string): Promise<string>;
|
|
484
|
+
later(delay: number, job: SerializedJob, queue?: string): Promise<string>;
|
|
485
|
+
pop(queue?: string): Promise<SerializedJob | null>;
|
|
486
|
+
delete(job: SerializedJob, queue?: string): Promise<void>;
|
|
487
|
+
release(job: SerializedJob, delay: number, queue?: string): Promise<void>;
|
|
488
|
+
clear(queue?: string): Promise<number>;
|
|
489
|
+
getJobs(queue?: string): Promise<SerializedJob[]>;
|
|
490
|
+
}
|
|
491
|
+
//# sourceMappingURL=SyncDriver.d.ts.map
|
|
492
|
+
//#endregion
|
|
493
|
+
//#region src/Drivers/DatabaseDriver.d.ts
|
|
494
|
+
declare class DatabaseDriver implements QueueDriverInterface, FailedJobsInterface {
|
|
495
|
+
private defaultQueue;
|
|
496
|
+
private retryAfter;
|
|
497
|
+
constructor(config?: {
|
|
498
|
+
table?: string;
|
|
499
|
+
queue?: string;
|
|
500
|
+
retry_after?: number;
|
|
501
|
+
});
|
|
502
|
+
size(queue?: string): Promise<number>;
|
|
503
|
+
push(job: SerializedJob, queue?: string): Promise<string>;
|
|
504
|
+
later(delay: number, job: SerializedJob, queue?: string): Promise<string>;
|
|
505
|
+
pop(queue?: string): Promise<SerializedJob | null>;
|
|
506
|
+
delete(job: SerializedJob, _queue?: string): Promise<void>;
|
|
507
|
+
release(job: SerializedJob, delay: number, _queue?: string): Promise<void>;
|
|
508
|
+
clear(queue?: string): Promise<number>;
|
|
509
|
+
getJobs(queue?: string): Promise<SerializedJob[]>;
|
|
510
|
+
logFailed(connection: string, queue: string, job: SerializedJob, exception: Error): Promise<void>;
|
|
511
|
+
getFailedJobs(): Promise<any[]>;
|
|
512
|
+
retryFailed(uuid: string): Promise<boolean>;
|
|
513
|
+
forgetFailed(uuid: string): Promise<boolean>;
|
|
514
|
+
flushFailed(): Promise<number>;
|
|
515
|
+
}
|
|
516
|
+
//# sourceMappingURL=DatabaseDriver.d.ts.map
|
|
517
|
+
//#endregion
|
|
518
|
+
//#region src/Drivers/RedisDriver.d.ts
|
|
519
|
+
declare class RedisDriver implements QueueDriverInterface, FailedJobsInterface {
|
|
520
|
+
private client;
|
|
521
|
+
private defaultQueue;
|
|
522
|
+
private retryAfter;
|
|
523
|
+
private prefix;
|
|
524
|
+
private initialized;
|
|
525
|
+
constructor(config?: {
|
|
526
|
+
queue?: string;
|
|
527
|
+
retry_after?: number;
|
|
528
|
+
prefix?: string;
|
|
529
|
+
});
|
|
530
|
+
private key;
|
|
531
|
+
init(): Promise<void>;
|
|
532
|
+
private ensureConnected;
|
|
533
|
+
size(queue?: string): Promise<number>;
|
|
534
|
+
push(job: SerializedJob, queue?: string): Promise<string>;
|
|
535
|
+
later(delay: number, job: SerializedJob, queue?: string): Promise<string>;
|
|
536
|
+
pop(queue?: string): Promise<SerializedJob | null>;
|
|
537
|
+
private migrateDelayedJobs;
|
|
538
|
+
private migrateExpiredReserved;
|
|
539
|
+
delete(job: SerializedJob, queue?: string): Promise<void>;
|
|
540
|
+
release(job: SerializedJob, delay: number, queue?: string): Promise<void>;
|
|
541
|
+
clear(queue?: string): Promise<number>;
|
|
542
|
+
getJobs(queue?: string): Promise<SerializedJob[]>;
|
|
543
|
+
logFailed(connection: string, queue: string, job: SerializedJob, exception: Error): Promise<void>;
|
|
544
|
+
getFailedJobs(): Promise<any[]>;
|
|
545
|
+
retryFailed(uuid: string): Promise<boolean>;
|
|
546
|
+
forgetFailed(uuid: string): Promise<boolean>;
|
|
547
|
+
flushFailed(): Promise<number>;
|
|
548
|
+
disconnect(): Promise<void>;
|
|
549
|
+
}
|
|
550
|
+
//# sourceMappingURL=RedisDriver.d.ts.map
|
|
551
|
+
//#endregion
|
|
552
|
+
//#region src/QueueServiceProvider.d.ts
|
|
553
|
+
/**
|
|
554
|
+
* Framework QueueServiceProvider.
|
|
555
|
+
*
|
|
556
|
+
* Override `schedule()` in your app's Console Kernel (or your own QueueServiceProvider)
|
|
557
|
+
* to register cron tasks.
|
|
558
|
+
*
|
|
559
|
+
* @example
|
|
560
|
+
* // app/Providers/QueueServiceProvider.ts
|
|
561
|
+
* import { QueueServiceProvider as BaseProvider } from '@lara-node/queue';
|
|
562
|
+
*
|
|
563
|
+
* export class QueueServiceProvider extends BaseProvider {
|
|
564
|
+
* protected schedule(): void {
|
|
565
|
+
* this.scheduler.command('invoice:mark-overdue').dailyAt('00:00');
|
|
566
|
+
* }
|
|
567
|
+
* }
|
|
568
|
+
*/
|
|
569
|
+
declare class QueueServiceProvider extends ServiceProvider {
|
|
570
|
+
protected scheduler: Schedule;
|
|
571
|
+
register(): void;
|
|
572
|
+
boot(): void;
|
|
573
|
+
/** Override to define scheduled tasks. */
|
|
574
|
+
protected schedule(): void;
|
|
575
|
+
provides(): string[];
|
|
576
|
+
}
|
|
577
|
+
//# sourceMappingURL=QueueServiceProvider.d.ts.map
|
|
578
|
+
//#endregion
|
|
579
|
+
//#region src/queue.config.d.ts
|
|
580
|
+
interface QueueConnectionConfig {
|
|
581
|
+
driver: "sync" | "database" | "redis";
|
|
582
|
+
table?: string;
|
|
583
|
+
queue?: string;
|
|
584
|
+
retry_after?: number;
|
|
585
|
+
connection?: string;
|
|
586
|
+
}
|
|
587
|
+
interface QueueConfig {
|
|
588
|
+
default: string;
|
|
589
|
+
connections: Record<string, QueueConnectionConfig>;
|
|
590
|
+
failed: {
|
|
591
|
+
driver: "database";
|
|
592
|
+
table: string;
|
|
593
|
+
};
|
|
594
|
+
defaults: {
|
|
595
|
+
tries: number;
|
|
596
|
+
timeout: number;
|
|
597
|
+
backoff: number | number[];
|
|
598
|
+
maxExceptions: number;
|
|
599
|
+
};
|
|
600
|
+
}
|
|
601
|
+
declare const queueConfig: QueueConfig;
|
|
602
|
+
//#endregion
|
|
603
|
+
export { DatabaseDriver, FailedJob, FailedJobsInterface, Job, JobEvent, JobExceptionOccurredEvent, JobFailedEvent, JobOptions, JobProcessedEvent, JobProcessingEvent, JobStatus, PendingDispatch, Queue, type QueueConfig, type QueueConnectionConfig, QueueDriverInterface, QueueManager, QueueServiceProvider, Queueable, RedisDriver, Schedule, ScheduleFrequency, ScheduledTask, ScheduledTaskBuilder, SerializedJob, SyncDriver, Worker, WorkerOptions, decryptPayload, dispatch, encryptPayload, getJobClass, getRegisteredJobs, queueConfig, registerJob, scheduler };
|
|
604
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/Job.ts","../src/Queue.ts","../src/Worker.ts","../src/Scheduler.ts","../src/Drivers/SyncDriver.ts","../src/Drivers/DatabaseDriver.ts","../src/Drivers/RedisDriver.ts","../src/QueueServiceProvider.ts","../src/queue.config.ts"],"mappings":"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"}
|