@orchestr-sh/orchestr 1.7.4 → 1.8.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/Console/Commands/MakeJobCommand.d.ts +20 -0
- package/dist/Console/Commands/MakeJobCommand.d.ts.map +1 -0
- package/dist/Console/Commands/MakeJobCommand.js +165 -0
- package/dist/Console/Commands/MakeJobCommand.js.map +1 -0
- package/dist/Console/Commands/QueueBatchesTableCommand.d.ts +17 -0
- package/dist/Console/Commands/QueueBatchesTableCommand.d.ts.map +1 -0
- package/dist/Console/Commands/QueueBatchesTableCommand.js +92 -0
- package/dist/Console/Commands/QueueBatchesTableCommand.js.map +1 -0
- package/dist/Console/Commands/QueueClearCommand.d.ts +16 -0
- package/dist/Console/Commands/QueueClearCommand.d.ts.map +1 -0
- package/dist/Console/Commands/QueueClearCommand.js +29 -0
- package/dist/Console/Commands/QueueClearCommand.js.map +1 -0
- package/dist/Console/Commands/QueueFailedCommand.d.ts +18 -0
- package/dist/Console/Commands/QueueFailedCommand.d.ts.map +1 -0
- package/dist/Console/Commands/QueueFailedCommand.js +76 -0
- package/dist/Console/Commands/QueueFailedCommand.js.map +1 -0
- package/dist/Console/Commands/QueueFailedTableCommand.d.ts +17 -0
- package/dist/Console/Commands/QueueFailedTableCommand.d.ts.map +1 -0
- package/dist/Console/Commands/QueueFailedTableCommand.js +89 -0
- package/dist/Console/Commands/QueueFailedTableCommand.js.map +1 -0
- package/dist/Console/Commands/QueueFlushCommand.d.ts +18 -0
- package/dist/Console/Commands/QueueFlushCommand.d.ts.map +1 -0
- package/dist/Console/Commands/QueueFlushCommand.js +44 -0
- package/dist/Console/Commands/QueueFlushCommand.js.map +1 -0
- package/dist/Console/Commands/QueueForgetCommand.d.ts +18 -0
- package/dist/Console/Commands/QueueForgetCommand.d.ts.map +1 -0
- package/dist/Console/Commands/QueueForgetCommand.js +48 -0
- package/dist/Console/Commands/QueueForgetCommand.js.map +1 -0
- package/dist/Console/Commands/QueueMonitorCommand.d.ts +16 -0
- package/dist/Console/Commands/QueueMonitorCommand.d.ts.map +1 -0
- package/dist/Console/Commands/QueueMonitorCommand.js +42 -0
- package/dist/Console/Commands/QueueMonitorCommand.js.map +1 -0
- package/dist/Console/Commands/QueuePruneBatchesCommand.d.ts +16 -0
- package/dist/Console/Commands/QueuePruneBatchesCommand.d.ts.map +1 -0
- package/dist/Console/Commands/QueuePruneBatchesCommand.js +44 -0
- package/dist/Console/Commands/QueuePruneBatchesCommand.js.map +1 -0
- package/dist/Console/Commands/QueuePruneFailedCommand.d.ts +18 -0
- package/dist/Console/Commands/QueuePruneFailedCommand.d.ts.map +1 -0
- package/dist/Console/Commands/QueuePruneFailedCommand.js +39 -0
- package/dist/Console/Commands/QueuePruneFailedCommand.js.map +1 -0
- package/dist/Console/Commands/QueueRestartCommand.d.ts +16 -0
- package/dist/Console/Commands/QueueRestartCommand.d.ts.map +1 -0
- package/dist/Console/Commands/QueueRestartCommand.js +34 -0
- package/dist/Console/Commands/QueueRestartCommand.js.map +1 -0
- package/dist/Console/Commands/QueueRetryCommand.d.ts +20 -0
- package/dist/Console/Commands/QueueRetryCommand.d.ts.map +1 -0
- package/dist/Console/Commands/QueueRetryCommand.js +77 -0
- package/dist/Console/Commands/QueueRetryCommand.js.map +1 -0
- package/dist/Console/Commands/QueueTableCommand.d.ts +17 -0
- package/dist/Console/Commands/QueueTableCommand.d.ts.map +1 -0
- package/dist/Console/Commands/QueueTableCommand.js +89 -0
- package/dist/Console/Commands/QueueTableCommand.js.map +1 -0
- package/dist/Console/Commands/QueueWorkCommand.d.ts +16 -0
- package/dist/Console/Commands/QueueWorkCommand.d.ts.map +1 -0
- package/dist/Console/Commands/QueueWorkCommand.js +51 -0
- package/dist/Console/Commands/QueueWorkCommand.js.map +1 -0
- package/dist/Facades/Bus.d.ts +62 -0
- package/dist/Facades/Bus.d.ts.map +1 -0
- package/dist/Facades/Bus.js +102 -0
- package/dist/Facades/Bus.js.map +1 -0
- package/dist/Facades/Queue.d.ts +42 -0
- package/dist/Facades/Queue.d.ts.map +1 -0
- package/dist/Facades/Queue.js +71 -0
- package/dist/Facades/Queue.js.map +1 -0
- package/dist/Facades/index.d.ts +2 -0
- package/dist/Facades/index.d.ts.map +1 -1
- package/dist/Facades/index.js +5 -1
- package/dist/Facades/index.js.map +1 -1
- package/dist/Queue/Batching/Batch.d.ts +86 -0
- package/dist/Queue/Batching/Batch.d.ts.map +1 -0
- package/dist/Queue/Batching/Batch.js +170 -0
- package/dist/Queue/Batching/Batch.js.map +1 -0
- package/dist/Queue/Batching/PendingBatch.d.ts +72 -0
- package/dist/Queue/Batching/PendingBatch.d.ts.map +1 -0
- package/dist/Queue/Batching/PendingBatch.js +122 -0
- package/dist/Queue/Batching/PendingBatch.js.map +1 -0
- package/dist/Queue/Batching/index.d.ts +3 -0
- package/dist/Queue/Batching/index.d.ts.map +1 -0
- package/dist/Queue/Batching/index.js +8 -0
- package/dist/Queue/Batching/index.js.map +1 -0
- package/dist/Queue/Concerns/Dispatchable.d.ts +36 -0
- package/dist/Queue/Concerns/Dispatchable.d.ts.map +1 -0
- package/dist/Queue/Concerns/Dispatchable.js +102 -0
- package/dist/Queue/Concerns/Dispatchable.js.map +1 -0
- package/dist/Queue/Contracts/QueueDriver.d.ts +67 -0
- package/dist/Queue/Contracts/QueueDriver.d.ts.map +1 -0
- package/dist/Queue/Contracts/QueueDriver.js +9 -0
- package/dist/Queue/Contracts/QueueDriver.js.map +1 -0
- package/dist/Queue/Contracts/QueueableJob.d.ts +74 -0
- package/dist/Queue/Contracts/QueueableJob.d.ts.map +1 -0
- package/dist/Queue/Contracts/QueueableJob.js +9 -0
- package/dist/Queue/Contracts/QueueableJob.js.map +1 -0
- package/dist/Queue/Contracts/ShouldBeUnique.d.ts +43 -0
- package/dist/Queue/Contracts/ShouldBeUnique.d.ts.map +1 -0
- package/dist/Queue/Contracts/ShouldBeUnique.js +12 -0
- package/dist/Queue/Contracts/ShouldBeUnique.js.map +1 -0
- package/dist/Queue/Drivers/DatabaseDriver.d.ts +39 -0
- package/dist/Queue/Drivers/DatabaseDriver.d.ts.map +1 -0
- package/dist/Queue/Drivers/DatabaseDriver.js +176 -0
- package/dist/Queue/Drivers/DatabaseDriver.js.map +1 -0
- package/dist/Queue/Drivers/NullDriver.d.ts +30 -0
- package/dist/Queue/Drivers/NullDriver.d.ts.map +1 -0
- package/dist/Queue/Drivers/NullDriver.js +57 -0
- package/dist/Queue/Drivers/NullDriver.js.map +1 -0
- package/dist/Queue/Drivers/SyncDriver.d.ts +29 -0
- package/dist/Queue/Drivers/SyncDriver.d.ts.map +1 -0
- package/dist/Queue/Drivers/SyncDriver.js +67 -0
- package/dist/Queue/Drivers/SyncDriver.js.map +1 -0
- package/dist/Queue/Drivers/index.d.ts +4 -0
- package/dist/Queue/Drivers/index.d.ts.map +1 -0
- package/dist/Queue/Drivers/index.js +10 -0
- package/dist/Queue/Drivers/index.js.map +1 -0
- package/dist/Queue/Events/JobExceptionOccurred.d.ts +13 -0
- package/dist/Queue/Events/JobExceptionOccurred.d.ts.map +1 -0
- package/dist/Queue/Events/JobExceptionOccurred.js +20 -0
- package/dist/Queue/Events/JobExceptionOccurred.js.map +1 -0
- package/dist/Queue/Events/JobFailed.d.ts +13 -0
- package/dist/Queue/Events/JobFailed.d.ts.map +1 -0
- package/dist/Queue/Events/JobFailed.js +20 -0
- package/dist/Queue/Events/JobFailed.js.map +1 -0
- package/dist/Queue/Events/JobProcessed.d.ts +12 -0
- package/dist/Queue/Events/JobProcessed.d.ts.map +1 -0
- package/dist/Queue/Events/JobProcessed.js +18 -0
- package/dist/Queue/Events/JobProcessed.js.map +1 -0
- package/dist/Queue/Events/JobProcessing.d.ts +12 -0
- package/dist/Queue/Events/JobProcessing.d.ts.map +1 -0
- package/dist/Queue/Events/JobProcessing.js +18 -0
- package/dist/Queue/Events/JobProcessing.js.map +1 -0
- package/dist/Queue/Events/JobQueued.d.ts +14 -0
- package/dist/Queue/Events/JobQueued.d.ts.map +1 -0
- package/dist/Queue/Events/JobQueued.js +22 -0
- package/dist/Queue/Events/JobQueued.js.map +1 -0
- package/dist/Queue/Events/JobRetryRequested.d.ts +12 -0
- package/dist/Queue/Events/JobRetryRequested.d.ts.map +1 -0
- package/dist/Queue/Events/JobRetryRequested.js +20 -0
- package/dist/Queue/Events/JobRetryRequested.js.map +1 -0
- package/dist/Queue/Events/WorkerStopping.d.ts +11 -0
- package/dist/Queue/Events/WorkerStopping.d.ts.map +1 -0
- package/dist/Queue/Events/WorkerStopping.js +18 -0
- package/dist/Queue/Events/WorkerStopping.js.map +1 -0
- package/dist/Queue/Events/index.d.ts +8 -0
- package/dist/Queue/Events/index.d.ts.map +1 -0
- package/dist/Queue/Events/index.js +18 -0
- package/dist/Queue/Events/index.js.map +1 -0
- package/dist/Queue/Failed/DatabaseFailedJobProvider.d.ts +33 -0
- package/dist/Queue/Failed/DatabaseFailedJobProvider.d.ts.map +1 -0
- package/dist/Queue/Failed/DatabaseFailedJobProvider.js +100 -0
- package/dist/Queue/Failed/DatabaseFailedJobProvider.js.map +1 -0
- package/dist/Queue/Failed/FailedJobProvider.d.ts +42 -0
- package/dist/Queue/Failed/FailedJobProvider.d.ts.map +1 -0
- package/dist/Queue/Failed/FailedJobProvider.js +9 -0
- package/dist/Queue/Failed/FailedJobProvider.js.map +1 -0
- package/dist/Queue/Job.d.ts +194 -0
- package/dist/Queue/Job.d.ts.map +1 -0
- package/dist/Queue/Job.js +286 -0
- package/dist/Queue/Job.js.map +1 -0
- package/dist/Queue/JobPayload.d.ts +37 -0
- package/dist/Queue/JobPayload.d.ts.map +1 -0
- package/dist/Queue/JobPayload.js +46 -0
- package/dist/Queue/JobPayload.js.map +1 -0
- package/dist/Queue/Middleware/JobMiddleware.d.ts +29 -0
- package/dist/Queue/Middleware/JobMiddleware.d.ts.map +1 -0
- package/dist/Queue/Middleware/JobMiddleware.js +21 -0
- package/dist/Queue/Middleware/JobMiddleware.js.map +1 -0
- package/dist/Queue/Middleware/RateLimited.d.ts +56 -0
- package/dist/Queue/Middleware/RateLimited.d.ts.map +1 -0
- package/dist/Queue/Middleware/RateLimited.js +83 -0
- package/dist/Queue/Middleware/RateLimited.js.map +1 -0
- package/dist/Queue/Middleware/ThrottlesExceptions.d.ts +71 -0
- package/dist/Queue/Middleware/ThrottlesExceptions.d.ts.map +1 -0
- package/dist/Queue/Middleware/ThrottlesExceptions.js +119 -0
- package/dist/Queue/Middleware/ThrottlesExceptions.js.map +1 -0
- package/dist/Queue/Middleware/WithoutOverlapping.d.ts +64 -0
- package/dist/Queue/Middleware/WithoutOverlapping.d.ts.map +1 -0
- package/dist/Queue/Middleware/WithoutOverlapping.js +103 -0
- package/dist/Queue/Middleware/WithoutOverlapping.js.map +1 -0
- package/dist/Queue/Middleware/index.d.ts +5 -0
- package/dist/Queue/Middleware/index.d.ts.map +1 -0
- package/dist/Queue/Middleware/index.js +10 -0
- package/dist/Queue/Middleware/index.js.map +1 -0
- package/dist/Queue/PendingChain.d.ts +63 -0
- package/dist/Queue/PendingChain.d.ts.map +1 -0
- package/dist/Queue/PendingChain.js +111 -0
- package/dist/Queue/PendingChain.js.map +1 -0
- package/dist/Queue/PendingDispatch.d.ts +66 -0
- package/dist/Queue/PendingDispatch.d.ts.map +1 -0
- package/dist/Queue/PendingDispatch.js +101 -0
- package/dist/Queue/PendingDispatch.js.map +1 -0
- package/dist/Queue/QueueManager.d.ts +151 -0
- package/dist/Queue/QueueManager.d.ts.map +1 -0
- package/dist/Queue/QueueManager.js +227 -0
- package/dist/Queue/QueueManager.js.map +1 -0
- package/dist/Queue/QueueServiceProvider.d.ts +19 -0
- package/dist/Queue/QueueServiceProvider.d.ts.map +1 -0
- package/dist/Queue/QueueServiceProvider.js +75 -0
- package/dist/Queue/QueueServiceProvider.js.map +1 -0
- package/dist/Queue/Workers/Worker.d.ts +99 -0
- package/dist/Queue/Workers/Worker.d.ts.map +1 -0
- package/dist/Queue/Workers/Worker.js +324 -0
- package/dist/Queue/Workers/Worker.js.map +1 -0
- package/dist/Queue/Workers/WorkerOptions.d.ts +62 -0
- package/dist/Queue/Workers/WorkerOptions.d.ts.map +1 -0
- package/dist/Queue/Workers/WorkerOptions.js +23 -0
- package/dist/Queue/Workers/WorkerOptions.js.map +1 -0
- package/dist/Queue/index.d.ts +41 -0
- package/dist/Queue/index.d.ts.map +1 -0
- package/dist/Queue/index.js +67 -0
- package/dist/Queue/index.js.map +1 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +92 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PendingDispatch.js","sourceRoot":"","sources":["../../src/Queue/PendingDispatch.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAKH,MAAa,eAAe;IAId;IACA;IAJF,YAAY,GAAY,KAAK,CAAC;IAExC,YACY,OAAqB,EACrB,GAAQ;QADR,YAAO,GAAP,OAAO,CAAc;QACrB,QAAG,GAAH,GAAG,CAAK;IACjB,CAAC;IAEJ;;OAEG;IACH,YAAY,CAAC,UAAkB;QAC7B,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,KAAa;QACnB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAoB;QACxB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAa;QACjB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAe;QACrB,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAA0B;QAChC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,IAAI,CACF,WAA0E,EAC1E,UAAuE;QAEvE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC;CACF;AA1FD,0CA0FC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QueueManager
|
|
3
|
+
*
|
|
4
|
+
* Manages multiple queue connections and drivers.
|
|
5
|
+
* Follows the same Manager pattern as DatabaseManager.
|
|
6
|
+
*
|
|
7
|
+
* Mirrors Laravel's Illuminate\Queue\QueueManager.
|
|
8
|
+
*/
|
|
9
|
+
import type { QueueDriver } from './Contracts/QueueDriver';
|
|
10
|
+
import type { Job } from './Job';
|
|
11
|
+
export interface QueueConnectionConfig {
|
|
12
|
+
driver: string;
|
|
13
|
+
connection?: string;
|
|
14
|
+
table?: string;
|
|
15
|
+
queue?: string;
|
|
16
|
+
retry_after?: number;
|
|
17
|
+
block_for?: number | null;
|
|
18
|
+
after_commit?: boolean;
|
|
19
|
+
[key: string]: any;
|
|
20
|
+
}
|
|
21
|
+
export interface QueueFailedConfig {
|
|
22
|
+
driver: string;
|
|
23
|
+
database?: string;
|
|
24
|
+
table?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface QueueBatchingConfig {
|
|
27
|
+
database: string;
|
|
28
|
+
table: string;
|
|
29
|
+
}
|
|
30
|
+
export interface QueueConfig {
|
|
31
|
+
default: string;
|
|
32
|
+
connections: Record<string, QueueConnectionConfig>;
|
|
33
|
+
batching?: QueueBatchingConfig;
|
|
34
|
+
failed?: QueueFailedConfig;
|
|
35
|
+
}
|
|
36
|
+
export type DriverFactory = (config: QueueConnectionConfig) => QueueDriver;
|
|
37
|
+
export declare class QueueManager {
|
|
38
|
+
protected config: QueueConfig;
|
|
39
|
+
protected connections: Map<string, QueueDriver>;
|
|
40
|
+
protected driverFactories: Map<string, DriverFactory>;
|
|
41
|
+
protected jobRegistry: Map<string, new (...args: any[]) => Job>;
|
|
42
|
+
/**
|
|
43
|
+
* Event callbacks
|
|
44
|
+
*/
|
|
45
|
+
protected beforeCallbacks: Array<(connectionName: string, job: Job) => void>;
|
|
46
|
+
protected afterCallbacks: Array<(connectionName: string, job: Job) => void>;
|
|
47
|
+
protected failingCallbacks: Array<(connectionName: string, job: Job, error: Error) => void>;
|
|
48
|
+
protected loopingCallbacks: Array<() => void>;
|
|
49
|
+
constructor(config: QueueConfig);
|
|
50
|
+
/**
|
|
51
|
+
* Register a queue driver factory
|
|
52
|
+
*/
|
|
53
|
+
registerDriver(name: string, factory: DriverFactory): void;
|
|
54
|
+
/**
|
|
55
|
+
* Register a job class for deserialization
|
|
56
|
+
*/
|
|
57
|
+
registerJob(name: string, jobClass: new (...args: any[]) => Job): void;
|
|
58
|
+
/**
|
|
59
|
+
* Get a job class from the registry
|
|
60
|
+
*/
|
|
61
|
+
getJobClass(name: string): (new (...args: any[]) => Job) | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Get a queue connection instance
|
|
64
|
+
*/
|
|
65
|
+
connection(name?: string): QueueDriver;
|
|
66
|
+
/**
|
|
67
|
+
* Create a new queue connection
|
|
68
|
+
*/
|
|
69
|
+
protected createConnection(name: string): QueueDriver;
|
|
70
|
+
/**
|
|
71
|
+
* Dispatch a job to its configured connection and queue
|
|
72
|
+
*/
|
|
73
|
+
dispatch(job: Job): Promise<string>;
|
|
74
|
+
/**
|
|
75
|
+
* Dispatch a job synchronously (bypass queue, execute immediately)
|
|
76
|
+
*/
|
|
77
|
+
dispatchSync(job: Job): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Push a job onto a specific queue
|
|
80
|
+
*/
|
|
81
|
+
push(job: Job, queue?: string): Promise<string>;
|
|
82
|
+
/**
|
|
83
|
+
* Push a job onto a specific named queue
|
|
84
|
+
*/
|
|
85
|
+
pushOn(queue: string, job: Job): Promise<string>;
|
|
86
|
+
/**
|
|
87
|
+
* Push a job after a delay
|
|
88
|
+
*/
|
|
89
|
+
later(delay: number | Date, job: Job, queue?: string): Promise<string>;
|
|
90
|
+
/**
|
|
91
|
+
* Push multiple jobs onto the queue
|
|
92
|
+
*/
|
|
93
|
+
bulk(jobs: Job[], queue?: string): Promise<void>;
|
|
94
|
+
/**
|
|
95
|
+
* Register a callback to be called before a job is processed
|
|
96
|
+
*/
|
|
97
|
+
before(callback: (connectionName: string, job: Job) => void): void;
|
|
98
|
+
/**
|
|
99
|
+
* Register a callback to be called after a job is processed
|
|
100
|
+
*/
|
|
101
|
+
after(callback: (connectionName: string, job: Job) => void): void;
|
|
102
|
+
/**
|
|
103
|
+
* Register a callback to be called when a job fails
|
|
104
|
+
*/
|
|
105
|
+
failing(callback: (connectionName: string, job: Job, error: Error) => void): void;
|
|
106
|
+
/**
|
|
107
|
+
* Register a callback to be called on each worker loop iteration
|
|
108
|
+
*/
|
|
109
|
+
looping(callback: () => void): void;
|
|
110
|
+
/**
|
|
111
|
+
* Fire the before job callbacks
|
|
112
|
+
*/
|
|
113
|
+
fireBeforeCallbacks(connectionName: string, job: Job): void;
|
|
114
|
+
/**
|
|
115
|
+
* Fire the after job callbacks
|
|
116
|
+
*/
|
|
117
|
+
fireAfterCallbacks(connectionName: string, job: Job): void;
|
|
118
|
+
/**
|
|
119
|
+
* Fire the failing job callbacks
|
|
120
|
+
*/
|
|
121
|
+
fireFailingCallbacks(connectionName: string, job: Job, error: Error): void;
|
|
122
|
+
/**
|
|
123
|
+
* Fire the looping callbacks
|
|
124
|
+
*/
|
|
125
|
+
fireLoopingCallbacks(): void;
|
|
126
|
+
/**
|
|
127
|
+
* Disconnect from a queue connection
|
|
128
|
+
*/
|
|
129
|
+
disconnect(name?: string): void;
|
|
130
|
+
/**
|
|
131
|
+
* Get the default connection name
|
|
132
|
+
*/
|
|
133
|
+
getDefaultConnection(): string;
|
|
134
|
+
/**
|
|
135
|
+
* Set the default connection name
|
|
136
|
+
*/
|
|
137
|
+
setDefaultConnection(name: string): void;
|
|
138
|
+
/**
|
|
139
|
+
* Get all connection names
|
|
140
|
+
*/
|
|
141
|
+
getConnections(): string[];
|
|
142
|
+
/**
|
|
143
|
+
* Get the queue configuration
|
|
144
|
+
*/
|
|
145
|
+
getConfig(): QueueConfig;
|
|
146
|
+
/**
|
|
147
|
+
* Get the connection configuration
|
|
148
|
+
*/
|
|
149
|
+
getConnectionConfig(name?: string): QueueConnectionConfig;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=QueueManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueueManager.d.ts","sourceRoot":"","sources":["../../src/Queue/QueueManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* QueueManager
|
|
4
|
+
*
|
|
5
|
+
* Manages multiple queue connections and drivers.
|
|
6
|
+
* Follows the same Manager pattern as DatabaseManager.
|
|
7
|
+
*
|
|
8
|
+
* Mirrors Laravel's Illuminate\Queue\QueueManager.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.QueueManager = void 0;
|
|
12
|
+
class QueueManager {
|
|
13
|
+
config;
|
|
14
|
+
connections = new Map();
|
|
15
|
+
driverFactories = new Map();
|
|
16
|
+
jobRegistry = new Map();
|
|
17
|
+
/**
|
|
18
|
+
* Event callbacks
|
|
19
|
+
*/
|
|
20
|
+
beforeCallbacks = [];
|
|
21
|
+
afterCallbacks = [];
|
|
22
|
+
failingCallbacks = [];
|
|
23
|
+
loopingCallbacks = [];
|
|
24
|
+
constructor(config) {
|
|
25
|
+
this.config = config;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Register a queue driver factory
|
|
29
|
+
*/
|
|
30
|
+
registerDriver(name, factory) {
|
|
31
|
+
this.driverFactories.set(name, factory);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Register a job class for deserialization
|
|
35
|
+
*/
|
|
36
|
+
registerJob(name, jobClass) {
|
|
37
|
+
this.jobRegistry.set(name, jobClass);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get a job class from the registry
|
|
41
|
+
*/
|
|
42
|
+
getJobClass(name) {
|
|
43
|
+
return this.jobRegistry.get(name);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get a queue connection instance
|
|
47
|
+
*/
|
|
48
|
+
connection(name) {
|
|
49
|
+
const connectionName = name || this.config.default;
|
|
50
|
+
if (this.connections.has(connectionName)) {
|
|
51
|
+
return this.connections.get(connectionName);
|
|
52
|
+
}
|
|
53
|
+
const driver = this.createConnection(connectionName);
|
|
54
|
+
this.connections.set(connectionName, driver);
|
|
55
|
+
return driver;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Create a new queue connection
|
|
59
|
+
*/
|
|
60
|
+
createConnection(name) {
|
|
61
|
+
const config = this.config.connections[name];
|
|
62
|
+
if (!config) {
|
|
63
|
+
throw new Error(`Queue connection [${name}] not configured.`);
|
|
64
|
+
}
|
|
65
|
+
const factory = this.driverFactories.get(config.driver);
|
|
66
|
+
if (!factory) {
|
|
67
|
+
throw new Error(`Queue driver [${config.driver}] not registered. Available drivers: ${Array.from(this.driverFactories.keys()).join(', ')}`);
|
|
68
|
+
}
|
|
69
|
+
const driver = factory(config);
|
|
70
|
+
driver.setConnectionName(name);
|
|
71
|
+
return driver;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Dispatch a job to its configured connection and queue
|
|
75
|
+
*/
|
|
76
|
+
async dispatch(job) {
|
|
77
|
+
const connectionName = job.connection || this.config.default;
|
|
78
|
+
const driver = this.connection(connectionName);
|
|
79
|
+
const queue = job.queue;
|
|
80
|
+
if (job.delay) {
|
|
81
|
+
return driver.later(job.delay, job, queue);
|
|
82
|
+
}
|
|
83
|
+
return driver.push(job, queue);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Dispatch a job synchronously (bypass queue, execute immediately)
|
|
87
|
+
*/
|
|
88
|
+
async dispatchSync(job) {
|
|
89
|
+
try {
|
|
90
|
+
await job.handle();
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
if (job.failed) {
|
|
94
|
+
await job.failed(error);
|
|
95
|
+
}
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Push a job onto a specific queue
|
|
101
|
+
*/
|
|
102
|
+
async push(job, queue) {
|
|
103
|
+
const connectionName = job.connection || this.config.default;
|
|
104
|
+
return this.connection(connectionName).push(job, queue);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Push a job onto a specific named queue
|
|
108
|
+
*/
|
|
109
|
+
async pushOn(queue, job) {
|
|
110
|
+
job.queue = queue;
|
|
111
|
+
return this.push(job);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Push a job after a delay
|
|
115
|
+
*/
|
|
116
|
+
async later(delay, job, queue) {
|
|
117
|
+
const connectionName = job.connection || this.config.default;
|
|
118
|
+
return this.connection(connectionName).later(delay, job, queue);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Push multiple jobs onto the queue
|
|
122
|
+
*/
|
|
123
|
+
async bulk(jobs, queue) {
|
|
124
|
+
const connectionName = this.config.default;
|
|
125
|
+
return this.connection(connectionName).bulk(jobs, queue);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Register a callback to be called before a job is processed
|
|
129
|
+
*/
|
|
130
|
+
before(callback) {
|
|
131
|
+
this.beforeCallbacks.push(callback);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Register a callback to be called after a job is processed
|
|
135
|
+
*/
|
|
136
|
+
after(callback) {
|
|
137
|
+
this.afterCallbacks.push(callback);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Register a callback to be called when a job fails
|
|
141
|
+
*/
|
|
142
|
+
failing(callback) {
|
|
143
|
+
this.failingCallbacks.push(callback);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Register a callback to be called on each worker loop iteration
|
|
147
|
+
*/
|
|
148
|
+
looping(callback) {
|
|
149
|
+
this.loopingCallbacks.push(callback);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Fire the before job callbacks
|
|
153
|
+
*/
|
|
154
|
+
fireBeforeCallbacks(connectionName, job) {
|
|
155
|
+
for (const callback of this.beforeCallbacks) {
|
|
156
|
+
callback(connectionName, job);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Fire the after job callbacks
|
|
161
|
+
*/
|
|
162
|
+
fireAfterCallbacks(connectionName, job) {
|
|
163
|
+
for (const callback of this.afterCallbacks) {
|
|
164
|
+
callback(connectionName, job);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Fire the failing job callbacks
|
|
169
|
+
*/
|
|
170
|
+
fireFailingCallbacks(connectionName, job, error) {
|
|
171
|
+
for (const callback of this.failingCallbacks) {
|
|
172
|
+
callback(connectionName, job, error);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Fire the looping callbacks
|
|
177
|
+
*/
|
|
178
|
+
fireLoopingCallbacks() {
|
|
179
|
+
for (const callback of this.loopingCallbacks) {
|
|
180
|
+
callback();
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Disconnect from a queue connection
|
|
185
|
+
*/
|
|
186
|
+
disconnect(name) {
|
|
187
|
+
const connectionName = name || this.config.default;
|
|
188
|
+
this.connections.delete(connectionName);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Get the default connection name
|
|
192
|
+
*/
|
|
193
|
+
getDefaultConnection() {
|
|
194
|
+
return this.config.default;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Set the default connection name
|
|
198
|
+
*/
|
|
199
|
+
setDefaultConnection(name) {
|
|
200
|
+
this.config.default = name;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Get all connection names
|
|
204
|
+
*/
|
|
205
|
+
getConnections() {
|
|
206
|
+
return Object.keys(this.config.connections);
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Get the queue configuration
|
|
210
|
+
*/
|
|
211
|
+
getConfig() {
|
|
212
|
+
return this.config;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Get the connection configuration
|
|
216
|
+
*/
|
|
217
|
+
getConnectionConfig(name) {
|
|
218
|
+
const connectionName = name || this.config.default;
|
|
219
|
+
const config = this.config.connections[connectionName];
|
|
220
|
+
if (!config) {
|
|
221
|
+
throw new Error(`Queue connection [${connectionName}] not configured.`);
|
|
222
|
+
}
|
|
223
|
+
return config;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
exports.QueueManager = QueueManager;
|
|
227
|
+
//# sourceMappingURL=QueueManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueueManager.js","sourceRoot":"","sources":["../../src/Queue/QueueManager.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAuCH,MAAa,YAAY;IAaD;IAZZ,WAAW,GAA6B,IAAI,GAAG,EAAE,CAAC;IAClD,eAAe,GAA+B,IAAI,GAAG,EAAE,CAAC;IACxD,WAAW,GAA6C,IAAI,GAAG,EAAE,CAAC;IAE5E;;OAEG;IACO,eAAe,GAAsD,EAAE,CAAC;IACxE,cAAc,GAAsD,EAAE,CAAC;IACvE,gBAAgB,GAAoE,EAAE,CAAC;IACvF,gBAAgB,GAAsB,EAAE,CAAC;IAEnD,YAAsB,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAE7C;;OAEG;IACH,cAAc,CAAC,IAAY,EAAE,OAAsB;QACjD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAAY,EAAE,QAAqC;QAC7D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAa;QACtB,MAAM,cAAc,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAEnD,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC;QAC/C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAE7C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACO,gBAAgB,CAAC,IAAY;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,mBAAmB,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAExD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,CAAC,MAAM,wCAAwC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9I,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,GAAQ;QACrB,MAAM,cAAc,GAAG,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QAExB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,GAAQ;QACzB,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,MAAM,GAAG,CAAC,MAAM,CAAC,KAAc,CAAC,CAAC;YACnC,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,GAAQ,EAAE,KAAc;QACjC,MAAM,cAAc,GAAG,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,GAAQ;QAClC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,KAAoB,EAAE,GAAQ,EAAE,KAAc;QACxD,MAAM,cAAc,GAAG,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,IAAW,EAAE,KAAc;QACpC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAoD;QACzD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAoD;QACxD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,QAAkE;QACxE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,QAAoB;QAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,cAAsB,EAAE,GAAQ;QAClD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,cAAsB,EAAE,GAAQ;QACjD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3C,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,cAAsB,EAAE,GAAQ,EAAE,KAAY;QACjE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC7C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC7C,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAa;QACtB,MAAM,cAAc,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QACnD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,IAAY;QAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,IAAa;QAC/B,MAAM,cAAc,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAEvD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,cAAc,mBAAmB,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAxPD,oCAwPC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QueueServiceProvider
|
|
3
|
+
*
|
|
4
|
+
* Registers queue services into the container.
|
|
5
|
+
* Mirrors Laravel's Illuminate\Queue\QueueServiceProvider.
|
|
6
|
+
*/
|
|
7
|
+
import { ServiceProvider } from '../Foundation/ServiceProvider';
|
|
8
|
+
import type { QueueConfig } from './QueueManager';
|
|
9
|
+
export declare class QueueServiceProvider extends ServiceProvider {
|
|
10
|
+
/**
|
|
11
|
+
* Register queue services
|
|
12
|
+
*/
|
|
13
|
+
register(): void;
|
|
14
|
+
/**
|
|
15
|
+
* Get the queue configuration
|
|
16
|
+
*/
|
|
17
|
+
protected getConfig(): QueueConfig;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=QueueServiceProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueueServiceProvider.d.ts","sourceRoot":"","sources":["../../src/Queue/QueueServiceProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAOlD,qBAAa,oBAAqB,SAAQ,eAAe;IACvD;;OAEG;IACH,QAAQ,IAAI,IAAI;IA6BhB;;OAEG;IACH,SAAS,CAAC,SAAS,IAAI,WAAW;CA0BnC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* QueueServiceProvider
|
|
4
|
+
*
|
|
5
|
+
* Registers queue services into the container.
|
|
6
|
+
* Mirrors Laravel's Illuminate\Queue\QueueServiceProvider.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.QueueServiceProvider = void 0;
|
|
10
|
+
const ServiceProvider_1 = require("../Foundation/ServiceProvider");
|
|
11
|
+
const QueueManager_1 = require("./QueueManager");
|
|
12
|
+
const SyncDriver_1 = require("./Drivers/SyncDriver");
|
|
13
|
+
const DatabaseDriver_1 = require("./Drivers/DatabaseDriver");
|
|
14
|
+
const NullDriver_1 = require("./Drivers/NullDriver");
|
|
15
|
+
const Worker_1 = require("./Workers/Worker");
|
|
16
|
+
const DatabaseFailedJobProvider_1 = require("./Failed/DatabaseFailedJobProvider");
|
|
17
|
+
class QueueServiceProvider extends ServiceProvider_1.ServiceProvider {
|
|
18
|
+
/**
|
|
19
|
+
* Register queue services
|
|
20
|
+
*/
|
|
21
|
+
register() {
|
|
22
|
+
this.app.singleton('queue', () => {
|
|
23
|
+
const config = this.getConfig();
|
|
24
|
+
const manager = new QueueManager_1.QueueManager(config);
|
|
25
|
+
// Register built-in drivers
|
|
26
|
+
manager.registerDriver('sync', (driverConfig) => new SyncDriver_1.SyncDriver(driverConfig));
|
|
27
|
+
manager.registerDriver('database', (driverConfig) => new DatabaseDriver_1.DatabaseDriver(driverConfig, this.app));
|
|
28
|
+
manager.registerDriver('null', (driverConfig) => new NullDriver_1.NullDriver(driverConfig));
|
|
29
|
+
return manager;
|
|
30
|
+
});
|
|
31
|
+
this.app.singleton('queue.worker', () => {
|
|
32
|
+
const manager = this.app.make('queue');
|
|
33
|
+
return new Worker_1.Worker(manager, this.app);
|
|
34
|
+
});
|
|
35
|
+
this.app.singleton('queue.failer', () => {
|
|
36
|
+
const config = this.getConfig();
|
|
37
|
+
const failedConfig = config.failed || { driver: 'database', table: 'failed_jobs' };
|
|
38
|
+
return new DatabaseFailedJobProvider_1.DatabaseFailedJobProvider(this.app, {
|
|
39
|
+
table: failedConfig.table || 'failed_jobs',
|
|
40
|
+
database: failedConfig.database,
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get the queue configuration
|
|
46
|
+
*/
|
|
47
|
+
getConfig() {
|
|
48
|
+
try {
|
|
49
|
+
const configService = this.app.make('config');
|
|
50
|
+
const queueConfig = configService?.items?.queue || configService?.get?.('queue');
|
|
51
|
+
if (queueConfig) {
|
|
52
|
+
return queueConfig;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
// Config service not available
|
|
57
|
+
}
|
|
58
|
+
// Default configuration
|
|
59
|
+
return {
|
|
60
|
+
default: 'sync',
|
|
61
|
+
connections: {
|
|
62
|
+
sync: {
|
|
63
|
+
driver: 'sync',
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
failed: {
|
|
67
|
+
driver: 'database',
|
|
68
|
+
database: 'sqlite',
|
|
69
|
+
table: 'failed_jobs',
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.QueueServiceProvider = QueueServiceProvider;
|
|
75
|
+
//# sourceMappingURL=QueueServiceProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueueServiceProvider.js","sourceRoot":"","sources":["../../src/Queue/QueueServiceProvider.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mEAAgE;AAChE,iDAA8C;AAE9C,qDAAkD;AAClD,6DAA0D;AAC1D,qDAAkD;AAClD,6CAA0C;AAC1C,kFAA+E;AAE/E,MAAa,oBAAqB,SAAQ,iCAAe;IACvD;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,2BAAY,CAAC,MAAM,CAAC,CAAC;YAEzC,4BAA4B;YAC5B,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,uBAAU,CAAC,YAAY,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,+BAAc,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACjG,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,uBAAU,CAAC,YAAY,CAAC,CAAC,CAAC;YAE/E,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,EAAE;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAe,OAAO,CAAC,CAAC;YACrD,OAAO,IAAI,eAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,EAAE;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;YAEnF,OAAO,IAAI,qDAAyB,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC7C,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,aAAa;gBAC1C,QAAQ,EAAE,YAAY,CAAC,QAAQ;aAChC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACO,SAAS;QACjB,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAQ,CAAC;YACrD,MAAM,WAAW,GAAG,aAAa,EAAE,KAAK,EAAE,KAAK,IAAI,aAAa,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;YACjF,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,WAAW,CAAC;YACrB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;QAED,wBAAwB;QACxB,OAAO;YACL,OAAO,EAAE,MAAM;YACf,WAAW,EAAE;gBACX,IAAI,EAAE;oBACJ,MAAM,EAAE,MAAM;iBACf;aACF;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,aAAa;aACrB;SACF,CAAC;IACJ,CAAC;CACF;AA9DD,oDA8DC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker
|
|
3
|
+
*
|
|
4
|
+
* The queue worker that processes jobs from the queue.
|
|
5
|
+
* Handles the daemon loop, job processing, retries, failures,
|
|
6
|
+
* memory management, and graceful shutdown.
|
|
7
|
+
*
|
|
8
|
+
* Mirrors Laravel's Illuminate\Queue\Worker.
|
|
9
|
+
*/
|
|
10
|
+
import type { QueueManager } from '../QueueManager';
|
|
11
|
+
import type { QueueDriver, QueueDriverJob } from '../Contracts/QueueDriver';
|
|
12
|
+
import type { Job } from '../Job';
|
|
13
|
+
import type { JobMiddleware } from '../Middleware/JobMiddleware';
|
|
14
|
+
import { type JobPayloadData } from '../JobPayload';
|
|
15
|
+
import type { WorkerOptions } from './WorkerOptions';
|
|
16
|
+
import type { FailedJobProvider } from '../Failed/FailedJobProvider';
|
|
17
|
+
import type { Application } from '../../Foundation/Application';
|
|
18
|
+
export declare class Worker {
|
|
19
|
+
protected manager: QueueManager;
|
|
20
|
+
protected app: Application;
|
|
21
|
+
protected shouldQuit: boolean;
|
|
22
|
+
protected paused: boolean;
|
|
23
|
+
protected jobsProcessed: number;
|
|
24
|
+
protected startTime: number;
|
|
25
|
+
constructor(manager: QueueManager, app: Application);
|
|
26
|
+
/**
|
|
27
|
+
* Run the worker daemon loop
|
|
28
|
+
*/
|
|
29
|
+
daemon(connectionName: string, queues: string, options?: WorkerOptions): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Process a single job (--once mode)
|
|
32
|
+
*/
|
|
33
|
+
runOnce(connectionName: string, queues: string, options?: WorkerOptions): Promise<boolean>;
|
|
34
|
+
/**
|
|
35
|
+
* Get the next job and process it
|
|
36
|
+
*/
|
|
37
|
+
runNextJob(connectionName: string, queues: string, options: Required<WorkerOptions>): Promise<boolean>;
|
|
38
|
+
/**
|
|
39
|
+
* Process a single job
|
|
40
|
+
*/
|
|
41
|
+
protected processJob(connectionName: string, driver: QueueDriver, rawJob: QueueDriverJob, options: Required<WorkerOptions>): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Run a job through its middleware pipeline then execute it
|
|
44
|
+
*/
|
|
45
|
+
protected runJobWithMiddleware(job: Job, options: Required<WorkerOptions>): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Build a middleware pipeline
|
|
48
|
+
*/
|
|
49
|
+
protected buildMiddlewarePipeline(middleware: JobMiddleware[], destination: () => Promise<void>): () => Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Execute a job with a timeout
|
|
52
|
+
*/
|
|
53
|
+
protected executeWithTimeout(job: Job, timeout: number): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Handle an exception that occurred while processing a job
|
|
56
|
+
*/
|
|
57
|
+
protected handleJobException(connectionName: string, driver: QueueDriver, rawJob: QueueDriverJob, job: Job, payload: JobPayloadData, maxTries: number, error: Error): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Mark a job as failed and store it
|
|
60
|
+
*/
|
|
61
|
+
protected failJob(connectionName: string, driver: QueueDriver, rawJob: QueueDriverJob, job: Job, payload: JobPayloadData, error: Error): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Get the failed job provider
|
|
64
|
+
*/
|
|
65
|
+
protected getFailedJobProvider(): FailedJobProvider | null;
|
|
66
|
+
/**
|
|
67
|
+
* Determine if the worker should stop
|
|
68
|
+
*/
|
|
69
|
+
protected shouldStop(options: Required<WorkerOptions>): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Determine if the memory limit has been exceeded
|
|
72
|
+
*/
|
|
73
|
+
protected memoryExceeded(memoryLimit: number): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Sleep for the given number of seconds
|
|
76
|
+
*/
|
|
77
|
+
protected sleep(seconds: number): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Listen for process signals for graceful shutdown
|
|
80
|
+
*/
|
|
81
|
+
protected listenForSignals(): void;
|
|
82
|
+
/**
|
|
83
|
+
* Stop the worker
|
|
84
|
+
*/
|
|
85
|
+
stop(): void;
|
|
86
|
+
/**
|
|
87
|
+
* Pause the worker
|
|
88
|
+
*/
|
|
89
|
+
pause(): void;
|
|
90
|
+
/**
|
|
91
|
+
* Resume the worker
|
|
92
|
+
*/
|
|
93
|
+
resume(): void;
|
|
94
|
+
/**
|
|
95
|
+
* Get the number of jobs processed
|
|
96
|
+
*/
|
|
97
|
+
getJobsProcessed(): number;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=Worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Worker.d.ts","sourceRoot":"","sources":["../../../src/Queue/Workers/Worker.ts"],"names":[],"mappings":"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"}
|