@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.
Files changed (213) hide show
  1. package/dist/Console/Commands/MakeJobCommand.d.ts +20 -0
  2. package/dist/Console/Commands/MakeJobCommand.d.ts.map +1 -0
  3. package/dist/Console/Commands/MakeJobCommand.js +165 -0
  4. package/dist/Console/Commands/MakeJobCommand.js.map +1 -0
  5. package/dist/Console/Commands/QueueBatchesTableCommand.d.ts +17 -0
  6. package/dist/Console/Commands/QueueBatchesTableCommand.d.ts.map +1 -0
  7. package/dist/Console/Commands/QueueBatchesTableCommand.js +92 -0
  8. package/dist/Console/Commands/QueueBatchesTableCommand.js.map +1 -0
  9. package/dist/Console/Commands/QueueClearCommand.d.ts +16 -0
  10. package/dist/Console/Commands/QueueClearCommand.d.ts.map +1 -0
  11. package/dist/Console/Commands/QueueClearCommand.js +29 -0
  12. package/dist/Console/Commands/QueueClearCommand.js.map +1 -0
  13. package/dist/Console/Commands/QueueFailedCommand.d.ts +18 -0
  14. package/dist/Console/Commands/QueueFailedCommand.d.ts.map +1 -0
  15. package/dist/Console/Commands/QueueFailedCommand.js +76 -0
  16. package/dist/Console/Commands/QueueFailedCommand.js.map +1 -0
  17. package/dist/Console/Commands/QueueFailedTableCommand.d.ts +17 -0
  18. package/dist/Console/Commands/QueueFailedTableCommand.d.ts.map +1 -0
  19. package/dist/Console/Commands/QueueFailedTableCommand.js +89 -0
  20. package/dist/Console/Commands/QueueFailedTableCommand.js.map +1 -0
  21. package/dist/Console/Commands/QueueFlushCommand.d.ts +18 -0
  22. package/dist/Console/Commands/QueueFlushCommand.d.ts.map +1 -0
  23. package/dist/Console/Commands/QueueFlushCommand.js +44 -0
  24. package/dist/Console/Commands/QueueFlushCommand.js.map +1 -0
  25. package/dist/Console/Commands/QueueForgetCommand.d.ts +18 -0
  26. package/dist/Console/Commands/QueueForgetCommand.d.ts.map +1 -0
  27. package/dist/Console/Commands/QueueForgetCommand.js +48 -0
  28. package/dist/Console/Commands/QueueForgetCommand.js.map +1 -0
  29. package/dist/Console/Commands/QueueMonitorCommand.d.ts +16 -0
  30. package/dist/Console/Commands/QueueMonitorCommand.d.ts.map +1 -0
  31. package/dist/Console/Commands/QueueMonitorCommand.js +42 -0
  32. package/dist/Console/Commands/QueueMonitorCommand.js.map +1 -0
  33. package/dist/Console/Commands/QueuePruneBatchesCommand.d.ts +16 -0
  34. package/dist/Console/Commands/QueuePruneBatchesCommand.d.ts.map +1 -0
  35. package/dist/Console/Commands/QueuePruneBatchesCommand.js +44 -0
  36. package/dist/Console/Commands/QueuePruneBatchesCommand.js.map +1 -0
  37. package/dist/Console/Commands/QueuePruneFailedCommand.d.ts +18 -0
  38. package/dist/Console/Commands/QueuePruneFailedCommand.d.ts.map +1 -0
  39. package/dist/Console/Commands/QueuePruneFailedCommand.js +39 -0
  40. package/dist/Console/Commands/QueuePruneFailedCommand.js.map +1 -0
  41. package/dist/Console/Commands/QueueRestartCommand.d.ts +16 -0
  42. package/dist/Console/Commands/QueueRestartCommand.d.ts.map +1 -0
  43. package/dist/Console/Commands/QueueRestartCommand.js +34 -0
  44. package/dist/Console/Commands/QueueRestartCommand.js.map +1 -0
  45. package/dist/Console/Commands/QueueRetryCommand.d.ts +20 -0
  46. package/dist/Console/Commands/QueueRetryCommand.d.ts.map +1 -0
  47. package/dist/Console/Commands/QueueRetryCommand.js +77 -0
  48. package/dist/Console/Commands/QueueRetryCommand.js.map +1 -0
  49. package/dist/Console/Commands/QueueTableCommand.d.ts +17 -0
  50. package/dist/Console/Commands/QueueTableCommand.d.ts.map +1 -0
  51. package/dist/Console/Commands/QueueTableCommand.js +89 -0
  52. package/dist/Console/Commands/QueueTableCommand.js.map +1 -0
  53. package/dist/Console/Commands/QueueWorkCommand.d.ts +16 -0
  54. package/dist/Console/Commands/QueueWorkCommand.d.ts.map +1 -0
  55. package/dist/Console/Commands/QueueWorkCommand.js +51 -0
  56. package/dist/Console/Commands/QueueWorkCommand.js.map +1 -0
  57. package/dist/Facades/Bus.d.ts +62 -0
  58. package/dist/Facades/Bus.d.ts.map +1 -0
  59. package/dist/Facades/Bus.js +102 -0
  60. package/dist/Facades/Bus.js.map +1 -0
  61. package/dist/Facades/Queue.d.ts +42 -0
  62. package/dist/Facades/Queue.d.ts.map +1 -0
  63. package/dist/Facades/Queue.js +71 -0
  64. package/dist/Facades/Queue.js.map +1 -0
  65. package/dist/Facades/index.d.ts +2 -0
  66. package/dist/Facades/index.d.ts.map +1 -1
  67. package/dist/Facades/index.js +5 -1
  68. package/dist/Facades/index.js.map +1 -1
  69. package/dist/Queue/Batching/Batch.d.ts +86 -0
  70. package/dist/Queue/Batching/Batch.d.ts.map +1 -0
  71. package/dist/Queue/Batching/Batch.js +170 -0
  72. package/dist/Queue/Batching/Batch.js.map +1 -0
  73. package/dist/Queue/Batching/PendingBatch.d.ts +72 -0
  74. package/dist/Queue/Batching/PendingBatch.d.ts.map +1 -0
  75. package/dist/Queue/Batching/PendingBatch.js +122 -0
  76. package/dist/Queue/Batching/PendingBatch.js.map +1 -0
  77. package/dist/Queue/Batching/index.d.ts +3 -0
  78. package/dist/Queue/Batching/index.d.ts.map +1 -0
  79. package/dist/Queue/Batching/index.js +8 -0
  80. package/dist/Queue/Batching/index.js.map +1 -0
  81. package/dist/Queue/Concerns/Dispatchable.d.ts +36 -0
  82. package/dist/Queue/Concerns/Dispatchable.d.ts.map +1 -0
  83. package/dist/Queue/Concerns/Dispatchable.js +102 -0
  84. package/dist/Queue/Concerns/Dispatchable.js.map +1 -0
  85. package/dist/Queue/Contracts/QueueDriver.d.ts +67 -0
  86. package/dist/Queue/Contracts/QueueDriver.d.ts.map +1 -0
  87. package/dist/Queue/Contracts/QueueDriver.js +9 -0
  88. package/dist/Queue/Contracts/QueueDriver.js.map +1 -0
  89. package/dist/Queue/Contracts/QueueableJob.d.ts +74 -0
  90. package/dist/Queue/Contracts/QueueableJob.d.ts.map +1 -0
  91. package/dist/Queue/Contracts/QueueableJob.js +9 -0
  92. package/dist/Queue/Contracts/QueueableJob.js.map +1 -0
  93. package/dist/Queue/Contracts/ShouldBeUnique.d.ts +43 -0
  94. package/dist/Queue/Contracts/ShouldBeUnique.d.ts.map +1 -0
  95. package/dist/Queue/Contracts/ShouldBeUnique.js +12 -0
  96. package/dist/Queue/Contracts/ShouldBeUnique.js.map +1 -0
  97. package/dist/Queue/Drivers/DatabaseDriver.d.ts +39 -0
  98. package/dist/Queue/Drivers/DatabaseDriver.d.ts.map +1 -0
  99. package/dist/Queue/Drivers/DatabaseDriver.js +176 -0
  100. package/dist/Queue/Drivers/DatabaseDriver.js.map +1 -0
  101. package/dist/Queue/Drivers/NullDriver.d.ts +30 -0
  102. package/dist/Queue/Drivers/NullDriver.d.ts.map +1 -0
  103. package/dist/Queue/Drivers/NullDriver.js +57 -0
  104. package/dist/Queue/Drivers/NullDriver.js.map +1 -0
  105. package/dist/Queue/Drivers/SyncDriver.d.ts +29 -0
  106. package/dist/Queue/Drivers/SyncDriver.d.ts.map +1 -0
  107. package/dist/Queue/Drivers/SyncDriver.js +67 -0
  108. package/dist/Queue/Drivers/SyncDriver.js.map +1 -0
  109. package/dist/Queue/Drivers/index.d.ts +4 -0
  110. package/dist/Queue/Drivers/index.d.ts.map +1 -0
  111. package/dist/Queue/Drivers/index.js +10 -0
  112. package/dist/Queue/Drivers/index.js.map +1 -0
  113. package/dist/Queue/Events/JobExceptionOccurred.d.ts +13 -0
  114. package/dist/Queue/Events/JobExceptionOccurred.d.ts.map +1 -0
  115. package/dist/Queue/Events/JobExceptionOccurred.js +20 -0
  116. package/dist/Queue/Events/JobExceptionOccurred.js.map +1 -0
  117. package/dist/Queue/Events/JobFailed.d.ts +13 -0
  118. package/dist/Queue/Events/JobFailed.d.ts.map +1 -0
  119. package/dist/Queue/Events/JobFailed.js +20 -0
  120. package/dist/Queue/Events/JobFailed.js.map +1 -0
  121. package/dist/Queue/Events/JobProcessed.d.ts +12 -0
  122. package/dist/Queue/Events/JobProcessed.d.ts.map +1 -0
  123. package/dist/Queue/Events/JobProcessed.js +18 -0
  124. package/dist/Queue/Events/JobProcessed.js.map +1 -0
  125. package/dist/Queue/Events/JobProcessing.d.ts +12 -0
  126. package/dist/Queue/Events/JobProcessing.d.ts.map +1 -0
  127. package/dist/Queue/Events/JobProcessing.js +18 -0
  128. package/dist/Queue/Events/JobProcessing.js.map +1 -0
  129. package/dist/Queue/Events/JobQueued.d.ts +14 -0
  130. package/dist/Queue/Events/JobQueued.d.ts.map +1 -0
  131. package/dist/Queue/Events/JobQueued.js +22 -0
  132. package/dist/Queue/Events/JobQueued.js.map +1 -0
  133. package/dist/Queue/Events/JobRetryRequested.d.ts +12 -0
  134. package/dist/Queue/Events/JobRetryRequested.d.ts.map +1 -0
  135. package/dist/Queue/Events/JobRetryRequested.js +20 -0
  136. package/dist/Queue/Events/JobRetryRequested.js.map +1 -0
  137. package/dist/Queue/Events/WorkerStopping.d.ts +11 -0
  138. package/dist/Queue/Events/WorkerStopping.d.ts.map +1 -0
  139. package/dist/Queue/Events/WorkerStopping.js +18 -0
  140. package/dist/Queue/Events/WorkerStopping.js.map +1 -0
  141. package/dist/Queue/Events/index.d.ts +8 -0
  142. package/dist/Queue/Events/index.d.ts.map +1 -0
  143. package/dist/Queue/Events/index.js +18 -0
  144. package/dist/Queue/Events/index.js.map +1 -0
  145. package/dist/Queue/Failed/DatabaseFailedJobProvider.d.ts +33 -0
  146. package/dist/Queue/Failed/DatabaseFailedJobProvider.d.ts.map +1 -0
  147. package/dist/Queue/Failed/DatabaseFailedJobProvider.js +100 -0
  148. package/dist/Queue/Failed/DatabaseFailedJobProvider.js.map +1 -0
  149. package/dist/Queue/Failed/FailedJobProvider.d.ts +42 -0
  150. package/dist/Queue/Failed/FailedJobProvider.d.ts.map +1 -0
  151. package/dist/Queue/Failed/FailedJobProvider.js +9 -0
  152. package/dist/Queue/Failed/FailedJobProvider.js.map +1 -0
  153. package/dist/Queue/Job.d.ts +194 -0
  154. package/dist/Queue/Job.d.ts.map +1 -0
  155. package/dist/Queue/Job.js +286 -0
  156. package/dist/Queue/Job.js.map +1 -0
  157. package/dist/Queue/JobPayload.d.ts +37 -0
  158. package/dist/Queue/JobPayload.d.ts.map +1 -0
  159. package/dist/Queue/JobPayload.js +46 -0
  160. package/dist/Queue/JobPayload.js.map +1 -0
  161. package/dist/Queue/Middleware/JobMiddleware.d.ts +29 -0
  162. package/dist/Queue/Middleware/JobMiddleware.d.ts.map +1 -0
  163. package/dist/Queue/Middleware/JobMiddleware.js +21 -0
  164. package/dist/Queue/Middleware/JobMiddleware.js.map +1 -0
  165. package/dist/Queue/Middleware/RateLimited.d.ts +56 -0
  166. package/dist/Queue/Middleware/RateLimited.d.ts.map +1 -0
  167. package/dist/Queue/Middleware/RateLimited.js +83 -0
  168. package/dist/Queue/Middleware/RateLimited.js.map +1 -0
  169. package/dist/Queue/Middleware/ThrottlesExceptions.d.ts +71 -0
  170. package/dist/Queue/Middleware/ThrottlesExceptions.d.ts.map +1 -0
  171. package/dist/Queue/Middleware/ThrottlesExceptions.js +119 -0
  172. package/dist/Queue/Middleware/ThrottlesExceptions.js.map +1 -0
  173. package/dist/Queue/Middleware/WithoutOverlapping.d.ts +64 -0
  174. package/dist/Queue/Middleware/WithoutOverlapping.d.ts.map +1 -0
  175. package/dist/Queue/Middleware/WithoutOverlapping.js +103 -0
  176. package/dist/Queue/Middleware/WithoutOverlapping.js.map +1 -0
  177. package/dist/Queue/Middleware/index.d.ts +5 -0
  178. package/dist/Queue/Middleware/index.d.ts.map +1 -0
  179. package/dist/Queue/Middleware/index.js +10 -0
  180. package/dist/Queue/Middleware/index.js.map +1 -0
  181. package/dist/Queue/PendingChain.d.ts +63 -0
  182. package/dist/Queue/PendingChain.d.ts.map +1 -0
  183. package/dist/Queue/PendingChain.js +111 -0
  184. package/dist/Queue/PendingChain.js.map +1 -0
  185. package/dist/Queue/PendingDispatch.d.ts +66 -0
  186. package/dist/Queue/PendingDispatch.d.ts.map +1 -0
  187. package/dist/Queue/PendingDispatch.js +101 -0
  188. package/dist/Queue/PendingDispatch.js.map +1 -0
  189. package/dist/Queue/QueueManager.d.ts +151 -0
  190. package/dist/Queue/QueueManager.d.ts.map +1 -0
  191. package/dist/Queue/QueueManager.js +227 -0
  192. package/dist/Queue/QueueManager.js.map +1 -0
  193. package/dist/Queue/QueueServiceProvider.d.ts +19 -0
  194. package/dist/Queue/QueueServiceProvider.d.ts.map +1 -0
  195. package/dist/Queue/QueueServiceProvider.js +75 -0
  196. package/dist/Queue/QueueServiceProvider.js.map +1 -0
  197. package/dist/Queue/Workers/Worker.d.ts +99 -0
  198. package/dist/Queue/Workers/Worker.d.ts.map +1 -0
  199. package/dist/Queue/Workers/Worker.js +324 -0
  200. package/dist/Queue/Workers/Worker.js.map +1 -0
  201. package/dist/Queue/Workers/WorkerOptions.d.ts +62 -0
  202. package/dist/Queue/Workers/WorkerOptions.d.ts.map +1 -0
  203. package/dist/Queue/Workers/WorkerOptions.js +23 -0
  204. package/dist/Queue/Workers/WorkerOptions.js.map +1 -0
  205. package/dist/Queue/index.d.ts +41 -0
  206. package/dist/Queue/index.d.ts.map +1 -0
  207. package/dist/Queue/index.js +67 -0
  208. package/dist/Queue/index.js.map +1 -0
  209. package/dist/index.d.ts +50 -0
  210. package/dist/index.d.ts.map +1 -1
  211. package/dist/index.js +92 -2
  212. package/dist/index.js.map +1 -1
  213. 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":"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"}
@@ -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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"}