@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,324 @@
1
+ "use strict";
2
+ /**
3
+ * Worker
4
+ *
5
+ * The queue worker that processes jobs from the queue.
6
+ * Handles the daemon loop, job processing, retries, failures,
7
+ * memory management, and graceful shutdown.
8
+ *
9
+ * Mirrors Laravel's Illuminate\Queue\Worker.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Worker = void 0;
13
+ const JobPayload_1 = require("../JobPayload");
14
+ const WorkerOptions_1 = require("./WorkerOptions");
15
+ class Worker {
16
+ manager;
17
+ app;
18
+ shouldQuit = false;
19
+ paused = false;
20
+ jobsProcessed = 0;
21
+ startTime = 0;
22
+ constructor(manager, app) {
23
+ this.manager = manager;
24
+ this.app = app;
25
+ }
26
+ /**
27
+ * Run the worker daemon loop
28
+ */
29
+ async daemon(connectionName, queues, options = {}) {
30
+ const opts = { ...WorkerOptions_1.DEFAULT_WORKER_OPTIONS, ...options };
31
+ this.startTime = Date.now();
32
+ this.listenForSignals();
33
+ while (!this.shouldQuit) {
34
+ // Fire looping callbacks
35
+ this.manager.fireLoopingCallbacks();
36
+ // Check if paused
37
+ if (this.paused) {
38
+ await this.sleep(opts.sleep);
39
+ continue;
40
+ }
41
+ // Process the next job from the queue(s)
42
+ const processed = await this.runNextJob(connectionName, queues, opts);
43
+ if (!processed) {
44
+ // No job was available
45
+ if (opts.stopWhenEmpty) {
46
+ this.stop();
47
+ break;
48
+ }
49
+ await this.sleep(opts.sleep);
50
+ }
51
+ else {
52
+ // Rest between jobs if configured
53
+ if (opts.rest > 0) {
54
+ await this.sleep(opts.rest / 1000);
55
+ }
56
+ }
57
+ // Check stop conditions
58
+ if (this.shouldStop(opts)) {
59
+ this.stop();
60
+ }
61
+ }
62
+ }
63
+ /**
64
+ * Process a single job (--once mode)
65
+ */
66
+ async runOnce(connectionName, queues, options = {}) {
67
+ const opts = { ...WorkerOptions_1.DEFAULT_WORKER_OPTIONS, ...options };
68
+ return this.runNextJob(connectionName, queues, opts);
69
+ }
70
+ /**
71
+ * Get the next job and process it
72
+ */
73
+ async runNextJob(connectionName, queues, options) {
74
+ const driver = this.manager.connection(connectionName);
75
+ const queueList = queues.split(',').map((q) => q.trim());
76
+ // Try each queue in priority order
77
+ for (const queue of queueList) {
78
+ const rawJob = await driver.pop(queue);
79
+ if (rawJob) {
80
+ await this.processJob(connectionName, driver, rawJob, options);
81
+ this.jobsProcessed++;
82
+ return true;
83
+ }
84
+ }
85
+ return false;
86
+ }
87
+ /**
88
+ * Process a single job
89
+ */
90
+ async processJob(connectionName, driver, rawJob, options) {
91
+ let payload;
92
+ try {
93
+ payload = JobPayload_1.JobPayload.deserialize(rawJob.payload);
94
+ }
95
+ catch (error) {
96
+ // Invalid payload, delete the job
97
+ console.error(`[Queue] Invalid job payload, deleting job ${rawJob.id}`);
98
+ await driver.delete(rawJob.id);
99
+ return;
100
+ }
101
+ // Resolve the job class from the registry
102
+ const jobClass = this.manager.getJobClass(payload.job);
103
+ if (!jobClass) {
104
+ console.error(`[Queue] Job class [${payload.job}] not registered. Deleting job ${rawJob.id}`);
105
+ await driver.delete(rawJob.id);
106
+ return;
107
+ }
108
+ // Restore the job instance
109
+ let job;
110
+ try {
111
+ job = jobClass.fromJSON(payload.data);
112
+ }
113
+ catch (error) {
114
+ console.error(`[Queue] Failed to deserialize job [${payload.job}]:`, error);
115
+ await driver.delete(rawJob.id);
116
+ return;
117
+ }
118
+ // Set job metadata
119
+ job.jobId = rawJob.id;
120
+ job.uuid = payload.uuid;
121
+ job.attempts = rawJob.attempts;
122
+ // Determine max tries
123
+ const maxTries = job.tries ?? options.tries;
124
+ // Fire before callbacks
125
+ this.manager.fireBeforeCallbacks(connectionName, job);
126
+ try {
127
+ // Run through middleware pipeline
128
+ await this.runJobWithMiddleware(job, options);
129
+ // Check if the job was released back to the queue
130
+ if (job.isReleased()) {
131
+ await driver.release(rawJob.id, job.getReleaseDelay());
132
+ return;
133
+ }
134
+ // Check if the job was explicitly deleted
135
+ if (job.isDeleted()) {
136
+ await driver.delete(rawJob.id);
137
+ return;
138
+ }
139
+ // Job completed successfully
140
+ await driver.delete(rawJob.id);
141
+ // Fire after callbacks
142
+ this.manager.fireAfterCallbacks(connectionName, job);
143
+ }
144
+ catch (error) {
145
+ await this.handleJobException(connectionName, driver, rawJob, job, payload, maxTries, error);
146
+ }
147
+ }
148
+ /**
149
+ * Run a job through its middleware pipeline then execute it
150
+ */
151
+ async runJobWithMiddleware(job, options) {
152
+ const middleware = job.middleware?.() || [];
153
+ const timeout = job.timeout ?? options.timeout;
154
+ // Build middleware pipeline
155
+ const pipeline = this.buildMiddlewarePipeline(middleware, async () => {
156
+ // Execute the job with timeout
157
+ await this.executeWithTimeout(job, timeout);
158
+ });
159
+ await pipeline();
160
+ }
161
+ /**
162
+ * Build a middleware pipeline
163
+ */
164
+ buildMiddlewarePipeline(middleware, destination) {
165
+ return middleware.reduceRight((next, mw) => {
166
+ return () => mw.handle(middleware[0], next);
167
+ }, destination);
168
+ }
169
+ /**
170
+ * Execute a job with a timeout
171
+ */
172
+ async executeWithTimeout(job, timeout) {
173
+ if (timeout <= 0) {
174
+ await job.handle();
175
+ return;
176
+ }
177
+ const timeoutMs = timeout * 1000;
178
+ await Promise.race([
179
+ job.handle(),
180
+ new Promise((_, reject) => {
181
+ setTimeout(() => {
182
+ reject(new Error(`Job [${job.displayName()}] has been attempted too long or run too long. The job may have previously timed out.`));
183
+ }, timeoutMs);
184
+ }),
185
+ ]);
186
+ }
187
+ /**
188
+ * Handle an exception that occurred while processing a job
189
+ */
190
+ async handleJobException(connectionName, driver, rawJob, job, payload, maxTries, error) {
191
+ // Fire failing callbacks
192
+ this.manager.fireFailingCallbacks(connectionName, job, error);
193
+ // Check if the job has exceeded max attempts
194
+ if (maxTries > 0 && rawJob.attempts >= maxTries) {
195
+ await this.failJob(connectionName, driver, rawJob, job, payload, error);
196
+ return;
197
+ }
198
+ // Check retryUntil
199
+ if (job.retryUntil && new Date() >= job.retryUntil) {
200
+ await this.failJob(connectionName, driver, rawJob, job, payload, error);
201
+ return;
202
+ }
203
+ // Release the job back with backoff delay
204
+ const backoffDelay = job.getBackoffDelay(rawJob.attempts);
205
+ await driver.release(rawJob.id, backoffDelay);
206
+ console.error(`[Queue] Job [${job.displayName()}] failed (attempt ${rawJob.attempts}/${maxTries || 'unlimited'}). ` +
207
+ `Retrying in ${backoffDelay}s. Error: ${error.message}`);
208
+ }
209
+ /**
210
+ * Mark a job as failed and store it
211
+ */
212
+ async failJob(connectionName, driver, rawJob, job, payload, error) {
213
+ // Delete from the queue
214
+ await driver.delete(rawJob.id);
215
+ // Call the job's failed method
216
+ if (job.failed) {
217
+ try {
218
+ await job.failed(error);
219
+ }
220
+ catch (failedError) {
221
+ console.error(`[Queue] Error in failed() handler for [${job.displayName()}]:`, failedError);
222
+ }
223
+ }
224
+ // Store in failed jobs table
225
+ try {
226
+ const failedProvider = this.getFailedJobProvider();
227
+ if (failedProvider) {
228
+ await failedProvider.log(connectionName, rawJob.queue, rawJob.payload, error);
229
+ }
230
+ }
231
+ catch (storeError) {
232
+ console.error(`[Queue] Failed to store failed job:`, storeError);
233
+ }
234
+ console.error(`[Queue] Job [${job.displayName()}] has failed after ${rawJob.attempts} attempt(s). ` +
235
+ `Error: ${error.message}`);
236
+ }
237
+ /**
238
+ * Get the failed job provider
239
+ */
240
+ getFailedJobProvider() {
241
+ try {
242
+ return this.app.make('queue.failer');
243
+ }
244
+ catch {
245
+ return null;
246
+ }
247
+ }
248
+ /**
249
+ * Determine if the worker should stop
250
+ */
251
+ shouldStop(options) {
252
+ // Check max jobs
253
+ if (options.maxJobs > 0 && this.jobsProcessed >= options.maxJobs) {
254
+ return true;
255
+ }
256
+ // Check max time
257
+ if (options.maxTime > 0) {
258
+ const elapsed = (Date.now() - this.startTime) / 1000;
259
+ if (elapsed >= options.maxTime) {
260
+ return true;
261
+ }
262
+ }
263
+ // Check memory limit
264
+ if (this.memoryExceeded(options.memory)) {
265
+ return true;
266
+ }
267
+ return false;
268
+ }
269
+ /**
270
+ * Determine if the memory limit has been exceeded
271
+ */
272
+ memoryExceeded(memoryLimit) {
273
+ const usage = process.memoryUsage();
274
+ const usedMB = usage.rss / 1024 / 1024;
275
+ return usedMB >= memoryLimit;
276
+ }
277
+ /**
278
+ * Sleep for the given number of seconds
279
+ */
280
+ async sleep(seconds) {
281
+ return new Promise((resolve) => setTimeout(resolve, seconds * 1000));
282
+ }
283
+ /**
284
+ * Listen for process signals for graceful shutdown
285
+ */
286
+ listenForSignals() {
287
+ process.on('SIGTERM', () => {
288
+ this.shouldQuit = true;
289
+ });
290
+ process.on('SIGINT', () => {
291
+ this.shouldQuit = true;
292
+ });
293
+ process.on('SIGUSR2', () => {
294
+ // Restart signal (used by queue:restart)
295
+ this.shouldQuit = true;
296
+ });
297
+ }
298
+ /**
299
+ * Stop the worker
300
+ */
301
+ stop() {
302
+ this.shouldQuit = true;
303
+ }
304
+ /**
305
+ * Pause the worker
306
+ */
307
+ pause() {
308
+ this.paused = true;
309
+ }
310
+ /**
311
+ * Resume the worker
312
+ */
313
+ resume() {
314
+ this.paused = false;
315
+ }
316
+ /**
317
+ * Get the number of jobs processed
318
+ */
319
+ getJobsProcessed() {
320
+ return this.jobsProcessed;
321
+ }
322
+ }
323
+ exports.Worker = Worker;
324
+ //# sourceMappingURL=Worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Worker.js","sourceRoot":"","sources":["../../../src/Queue/Workers/Worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * WorkerOptions
3
+ *
4
+ * Configuration options for the queue worker process.
5
+ * Mirrors Laravel's Illuminate\Queue\WorkerOptions.
6
+ */
7
+ export interface WorkerOptions {
8
+ /**
9
+ * Worker name (for identification)
10
+ */
11
+ name?: string;
12
+ /**
13
+ * The number of seconds to wait before polling for new jobs
14
+ * @default 3
15
+ */
16
+ sleep?: number;
17
+ /**
18
+ * The maximum number of times a job should be attempted
19
+ * Used as default when the job doesn't specify its own tries
20
+ * @default 1
21
+ */
22
+ tries?: number;
23
+ /**
24
+ * The number of seconds a child process can run
25
+ * @default 60
26
+ */
27
+ timeout?: number;
28
+ /**
29
+ * The memory limit in megabytes
30
+ * @default 128
31
+ */
32
+ memory?: number;
33
+ /**
34
+ * The maximum number of jobs to process before stopping
35
+ */
36
+ maxJobs?: number;
37
+ /**
38
+ * The maximum number of seconds the worker should run
39
+ */
40
+ maxTime?: number;
41
+ /**
42
+ * Force the worker to run even in maintenance mode
43
+ * @default false
44
+ */
45
+ force?: boolean;
46
+ /**
47
+ * Stop the worker when the queue is empty
48
+ * @default false
49
+ */
50
+ stopWhenEmpty?: boolean;
51
+ /**
52
+ * The number of seconds to wait before retrying a job that encountered an uncaught exception
53
+ */
54
+ backoff?: number | number[];
55
+ /**
56
+ * The number of seconds to rest between jobs
57
+ * @default 0
58
+ */
59
+ rest?: number;
60
+ }
61
+ export declare const DEFAULT_WORKER_OPTIONS: Required<WorkerOptions>;
62
+ //# sourceMappingURL=WorkerOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerOptions.d.ts","sourceRoot":"","sources":["../../../src/Queue/Workers/WorkerOptions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE5B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,aAAa,CAY1D,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * WorkerOptions
4
+ *
5
+ * Configuration options for the queue worker process.
6
+ * Mirrors Laravel's Illuminate\Queue\WorkerOptions.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DEFAULT_WORKER_OPTIONS = void 0;
10
+ exports.DEFAULT_WORKER_OPTIONS = {
11
+ name: 'default',
12
+ sleep: 3,
13
+ tries: 1,
14
+ timeout: 60,
15
+ memory: 128,
16
+ maxJobs: 0,
17
+ maxTime: 0,
18
+ force: false,
19
+ stopWhenEmpty: false,
20
+ backoff: 0,
21
+ rest: 0,
22
+ };
23
+ //# sourceMappingURL=WorkerOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerOptions.js","sourceRoot":"","sources":["../../../src/Queue/Workers/WorkerOptions.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAmEU,QAAA,sBAAsB,GAA4B;IAC7D,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,KAAK;IACZ,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,CAAC;CACR,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Queue Module
3
+ *
4
+ * A complete Laravel-compatible queue system for TypeScript.
5
+ */
6
+ export { Job } from './Job';
7
+ export type { JobClass } from './Job';
8
+ export { QueueManager } from './QueueManager';
9
+ export type { QueueConfig, QueueConnectionConfig, QueueFailedConfig, QueueBatchingConfig } from './QueueManager';
10
+ export { QueueServiceProvider } from './QueueServiceProvider';
11
+ export { PendingDispatch } from './PendingDispatch';
12
+ export { PendingChain } from './PendingChain';
13
+ export { JobPayload } from './JobPayload';
14
+ export type { JobPayloadData } from './JobPayload';
15
+ export type { QueueableJob } from './Contracts/QueueableJob';
16
+ export type { QueueDriver, QueueDriverJob } from './Contracts/QueueDriver';
17
+ export type { ShouldBeUnique, ShouldBeUniqueUntilProcessing } from './Contracts/ShouldBeUnique';
18
+ export { isShouldBeUnique } from './Contracts/ShouldBeUnique';
19
+ export { SyncDriver } from './Drivers/SyncDriver';
20
+ export { DatabaseDriver } from './Drivers/DatabaseDriver';
21
+ export { NullDriver } from './Drivers/NullDriver';
22
+ export { Worker } from './Workers/Worker';
23
+ export type { WorkerOptions } from './Workers/WorkerOptions';
24
+ export { DEFAULT_WORKER_OPTIONS } from './Workers/WorkerOptions';
25
+ export type { JobMiddleware } from './Middleware/JobMiddleware';
26
+ export { RateLimited } from './Middleware/RateLimited';
27
+ export { WithoutOverlapping } from './Middleware/WithoutOverlapping';
28
+ export { ThrottlesExceptions } from './Middleware/ThrottlesExceptions';
29
+ export type { FailedJobProvider, FailedJobRecord } from './Failed/FailedJobProvider';
30
+ export { DatabaseFailedJobProvider } from './Failed/DatabaseFailedJobProvider';
31
+ export { Batch } from './Batching/Batch';
32
+ export { PendingBatch } from './Batching/PendingBatch';
33
+ export { JobQueued } from './Events/JobQueued';
34
+ export { JobProcessing } from './Events/JobProcessing';
35
+ export { JobProcessed } from './Events/JobProcessed';
36
+ export { JobFailed } from './Events/JobFailed';
37
+ export { JobExceptionOccurred } from './Events/JobExceptionOccurred';
38
+ export { JobRetryRequested } from './Events/JobRetryRequested';
39
+ export { WorkerStopping } from './Events/WorkerStopping';
40
+ export { applyJobDispatchable } from './Concerns/Dispatchable';
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Queue/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACjH,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC3E,YAAY,EAAE,cAAc,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAG/E,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ /**
3
+ * Queue Module
4
+ *
5
+ * A complete Laravel-compatible queue system for TypeScript.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.applyJobDispatchable = exports.WorkerStopping = exports.JobRetryRequested = exports.JobExceptionOccurred = exports.JobFailed = exports.JobProcessed = exports.JobProcessing = exports.JobQueued = exports.PendingBatch = exports.Batch = exports.DatabaseFailedJobProvider = exports.ThrottlesExceptions = exports.WithoutOverlapping = exports.RateLimited = exports.DEFAULT_WORKER_OPTIONS = exports.Worker = exports.NullDriver = exports.DatabaseDriver = exports.SyncDriver = exports.isShouldBeUnique = exports.JobPayload = exports.PendingChain = exports.PendingDispatch = exports.QueueServiceProvider = exports.QueueManager = exports.Job = void 0;
9
+ // Core
10
+ var Job_1 = require("./Job");
11
+ Object.defineProperty(exports, "Job", { enumerable: true, get: function () { return Job_1.Job; } });
12
+ var QueueManager_1 = require("./QueueManager");
13
+ Object.defineProperty(exports, "QueueManager", { enumerable: true, get: function () { return QueueManager_1.QueueManager; } });
14
+ var QueueServiceProvider_1 = require("./QueueServiceProvider");
15
+ Object.defineProperty(exports, "QueueServiceProvider", { enumerable: true, get: function () { return QueueServiceProvider_1.QueueServiceProvider; } });
16
+ var PendingDispatch_1 = require("./PendingDispatch");
17
+ Object.defineProperty(exports, "PendingDispatch", { enumerable: true, get: function () { return PendingDispatch_1.PendingDispatch; } });
18
+ var PendingChain_1 = require("./PendingChain");
19
+ Object.defineProperty(exports, "PendingChain", { enumerable: true, get: function () { return PendingChain_1.PendingChain; } });
20
+ var JobPayload_1 = require("./JobPayload");
21
+ Object.defineProperty(exports, "JobPayload", { enumerable: true, get: function () { return JobPayload_1.JobPayload; } });
22
+ var ShouldBeUnique_1 = require("./Contracts/ShouldBeUnique");
23
+ Object.defineProperty(exports, "isShouldBeUnique", { enumerable: true, get: function () { return ShouldBeUnique_1.isShouldBeUnique; } });
24
+ // Drivers
25
+ var SyncDriver_1 = require("./Drivers/SyncDriver");
26
+ Object.defineProperty(exports, "SyncDriver", { enumerable: true, get: function () { return SyncDriver_1.SyncDriver; } });
27
+ var DatabaseDriver_1 = require("./Drivers/DatabaseDriver");
28
+ Object.defineProperty(exports, "DatabaseDriver", { enumerable: true, get: function () { return DatabaseDriver_1.DatabaseDriver; } });
29
+ var NullDriver_1 = require("./Drivers/NullDriver");
30
+ Object.defineProperty(exports, "NullDriver", { enumerable: true, get: function () { return NullDriver_1.NullDriver; } });
31
+ // Workers
32
+ var Worker_1 = require("./Workers/Worker");
33
+ Object.defineProperty(exports, "Worker", { enumerable: true, get: function () { return Worker_1.Worker; } });
34
+ var WorkerOptions_1 = require("./Workers/WorkerOptions");
35
+ Object.defineProperty(exports, "DEFAULT_WORKER_OPTIONS", { enumerable: true, get: function () { return WorkerOptions_1.DEFAULT_WORKER_OPTIONS; } });
36
+ var RateLimited_1 = require("./Middleware/RateLimited");
37
+ Object.defineProperty(exports, "RateLimited", { enumerable: true, get: function () { return RateLimited_1.RateLimited; } });
38
+ var WithoutOverlapping_1 = require("./Middleware/WithoutOverlapping");
39
+ Object.defineProperty(exports, "WithoutOverlapping", { enumerable: true, get: function () { return WithoutOverlapping_1.WithoutOverlapping; } });
40
+ var ThrottlesExceptions_1 = require("./Middleware/ThrottlesExceptions");
41
+ Object.defineProperty(exports, "ThrottlesExceptions", { enumerable: true, get: function () { return ThrottlesExceptions_1.ThrottlesExceptions; } });
42
+ var DatabaseFailedJobProvider_1 = require("./Failed/DatabaseFailedJobProvider");
43
+ Object.defineProperty(exports, "DatabaseFailedJobProvider", { enumerable: true, get: function () { return DatabaseFailedJobProvider_1.DatabaseFailedJobProvider; } });
44
+ // Batching
45
+ var Batch_1 = require("./Batching/Batch");
46
+ Object.defineProperty(exports, "Batch", { enumerable: true, get: function () { return Batch_1.Batch; } });
47
+ var PendingBatch_1 = require("./Batching/PendingBatch");
48
+ Object.defineProperty(exports, "PendingBatch", { enumerable: true, get: function () { return PendingBatch_1.PendingBatch; } });
49
+ // Events
50
+ var JobQueued_1 = require("./Events/JobQueued");
51
+ Object.defineProperty(exports, "JobQueued", { enumerable: true, get: function () { return JobQueued_1.JobQueued; } });
52
+ var JobProcessing_1 = require("./Events/JobProcessing");
53
+ Object.defineProperty(exports, "JobProcessing", { enumerable: true, get: function () { return JobProcessing_1.JobProcessing; } });
54
+ var JobProcessed_1 = require("./Events/JobProcessed");
55
+ Object.defineProperty(exports, "JobProcessed", { enumerable: true, get: function () { return JobProcessed_1.JobProcessed; } });
56
+ var JobFailed_1 = require("./Events/JobFailed");
57
+ Object.defineProperty(exports, "JobFailed", { enumerable: true, get: function () { return JobFailed_1.JobFailed; } });
58
+ var JobExceptionOccurred_1 = require("./Events/JobExceptionOccurred");
59
+ Object.defineProperty(exports, "JobExceptionOccurred", { enumerable: true, get: function () { return JobExceptionOccurred_1.JobExceptionOccurred; } });
60
+ var JobRetryRequested_1 = require("./Events/JobRetryRequested");
61
+ Object.defineProperty(exports, "JobRetryRequested", { enumerable: true, get: function () { return JobRetryRequested_1.JobRetryRequested; } });
62
+ var WorkerStopping_1 = require("./Events/WorkerStopping");
63
+ Object.defineProperty(exports, "WorkerStopping", { enumerable: true, get: function () { return WorkerStopping_1.WorkerStopping; } });
64
+ // Concerns
65
+ var Dispatchable_1 = require("./Concerns/Dispatchable");
66
+ Object.defineProperty(exports, "applyJobDispatchable", { enumerable: true, get: function () { return Dispatchable_1.applyJobDispatchable; } });
67
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Queue/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,OAAO;AACP,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AAEZ,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AAOnB,6DAA8D;AAArD,kHAAA,gBAAgB,OAAA;AAEzB,UAAU;AACV,mDAAkD;AAAzC,wGAAA,UAAU,OAAA;AACnB,2DAA0D;AAAjD,gHAAA,cAAc,OAAA;AACvB,mDAAkD;AAAzC,wGAAA,UAAU,OAAA;AAEnB,UAAU;AACV,2CAA0C;AAAjC,gGAAA,MAAM,OAAA;AAEf,yDAAiE;AAAxD,uHAAA,sBAAsB,OAAA;AAI/B,wDAAuD;AAA9C,0GAAA,WAAW,OAAA;AACpB,sEAAqE;AAA5D,wHAAA,kBAAkB,OAAA;AAC3B,wEAAuE;AAA9D,0HAAA,mBAAmB,OAAA;AAI5B,gFAA+E;AAAtE,sIAAA,yBAAyB,OAAA;AAElC,WAAW;AACX,0CAAyC;AAAhC,8FAAA,KAAK,OAAA;AACd,wDAAuD;AAA9C,4GAAA,YAAY,OAAA;AAErB,SAAS;AACT,gDAA+C;AAAtC,sGAAA,SAAS,OAAA;AAClB,wDAAuD;AAA9C,8GAAA,aAAa,OAAA;AACtB,sDAAqD;AAA5C,4GAAA,YAAY,OAAA;AACrB,gDAA+C;AAAtC,sGAAA,SAAS,OAAA;AAClB,sEAAqE;AAA5D,4HAAA,oBAAoB,OAAA;AAC7B,gEAA+D;AAAtD,sHAAA,iBAAiB,OAAA;AAC1B,0DAAyD;AAAhD,gHAAA,cAAc,OAAA;AAEvB,WAAW;AACX,wDAA+D;AAAtD,oHAAA,oBAAoB,OAAA"}
package/dist/index.d.ts CHANGED
@@ -21,12 +21,15 @@ export { Facade } from './Support/Facade';
21
21
  export { Route } from './Facades/Route';
22
22
  export { Config } from './Facades/Config';
23
23
  export { Event as EventFacade } from './Facades/Event';
24
+ export { Queue as QueueFacade } from './Facades/Queue';
25
+ export { Bus } from './Facades/Bus';
24
26
  export { loadRoutes, base_path, routes_path } from './Support/helpers';
25
27
  export { Injectable } from './Support/Injectable';
26
28
  export { ValidateRequest } from './Support/ValidateRequest';
27
29
  export { config } from './Support/helpers';
28
30
  export { RouteServiceProvider } from './Providers/RouteServiceProvider';
29
31
  export { DatabaseServiceProvider } from './Database/DatabaseServiceProvider';
32
+ export { QueueServiceProvider } from './Queue/QueueServiceProvider';
30
33
  export { DatabaseManager } from './Database/DatabaseManager';
31
34
  export { Connection } from './Database/Connection';
32
35
  export { Builder as QueryBuilder } from './Database/Query/Builder';
@@ -72,6 +75,20 @@ export { MakeListenerCommand } from './Console/Commands/MakeListenerCommand';
72
75
  export { EventListCommand } from './Console/Commands/EventListCommand';
73
76
  export { EventCacheCommand } from './Console/Commands/EventCacheCommand';
74
77
  export { EventClearCommand } from './Console/Commands/EventClearCommand';
78
+ export { QueueWorkCommand } from './Console/Commands/QueueWorkCommand';
79
+ export { QueueRestartCommand } from './Console/Commands/QueueRestartCommand';
80
+ export { QueueFailedCommand } from './Console/Commands/QueueFailedCommand';
81
+ export { QueueRetryCommand } from './Console/Commands/QueueRetryCommand';
82
+ export { QueueForgetCommand } from './Console/Commands/QueueForgetCommand';
83
+ export { QueueFlushCommand } from './Console/Commands/QueueFlushCommand';
84
+ export { QueueClearCommand } from './Console/Commands/QueueClearCommand';
85
+ export { QueueMonitorCommand } from './Console/Commands/QueueMonitorCommand';
86
+ export { QueueTableCommand } from './Console/Commands/QueueTableCommand';
87
+ export { QueueFailedTableCommand } from './Console/Commands/QueueFailedTableCommand';
88
+ export { QueueBatchesTableCommand } from './Console/Commands/QueueBatchesTableCommand';
89
+ export { QueuePruneBatchesCommand } from './Console/Commands/QueuePruneBatchesCommand';
90
+ export { QueuePruneFailedCommand } from './Console/Commands/QueuePruneFailedCommand';
91
+ export { MakeJobCommand } from './Console/Commands/MakeJobCommand';
75
92
  export type { DatabaseAdapter, DatabaseConfig, QueryResult } from './Database/Contracts/DatabaseAdapter';
76
93
  export type { QueryBuilderInterface, WhereOperator, OrderDirection, JoinType, WhereClause, JoinClause, OrderByClause, } from './Database/Contracts/QueryBuilderInterface';
77
94
  export type { Schema, Blueprint, ColumnDefinition, ForeignKeyDefinition } from './Database/Contracts/Schema';
@@ -87,6 +104,39 @@ export { Dispatchable, applyDispatchable } from './Events/Concerns/Dispatchable'
87
104
  export { ModelEvent, ModelRetrieved, ModelCreating, ModelCreated, ModelUpdating, ModelUpdated, ModelSaving, ModelSaved, ModelDeleting, ModelDeleted, } from './Database/Ensemble/Events';
88
105
  export type { DispatcherContract } from './Events/Contracts/Dispatcher';
89
106
  export type { EventListener, EventSubscriber, ListenerInterface, ListenerClosure, EventPayload, QueuedListener } from './Events/types';
107
+ export { Job } from './Queue/Job';
108
+ export type { JobClass } from './Queue/Job';
109
+ export { QueueManager } from './Queue/QueueManager';
110
+ export type { QueueConfig, QueueConnectionConfig, QueueFailedConfig, QueueBatchingConfig } from './Queue/QueueManager';
111
+ export { PendingDispatch as QueuePendingDispatch } from './Queue/PendingDispatch';
112
+ export { PendingChain } from './Queue/PendingChain';
113
+ export { JobPayload } from './Queue/JobPayload';
114
+ export type { QueueableJob } from './Queue/Contracts/QueueableJob';
115
+ export type { QueueDriver, QueueDriverJob } from './Queue/Contracts/QueueDriver';
116
+ export type { ShouldBeUnique, ShouldBeUniqueUntilProcessing } from './Queue/Contracts/ShouldBeUnique';
117
+ export { isShouldBeUnique } from './Queue/Contracts/ShouldBeUnique';
118
+ export { SyncDriver } from './Queue/Drivers/SyncDriver';
119
+ export { DatabaseDriver as DatabaseQueueDriver } from './Queue/Drivers/DatabaseDriver';
120
+ export { NullDriver as NullQueueDriver } from './Queue/Drivers/NullDriver';
121
+ export { Worker } from './Queue/Workers/Worker';
122
+ export type { WorkerOptions } from './Queue/Workers/WorkerOptions';
123
+ export type { JobMiddleware } from './Queue/Middleware/JobMiddleware';
124
+ export { RateLimited } from './Queue/Middleware/RateLimited';
125
+ export { WithoutOverlapping } from './Queue/Middleware/WithoutOverlapping';
126
+ export { ThrottlesExceptions } from './Queue/Middleware/ThrottlesExceptions';
127
+ export type { FailedJobProvider, FailedJobRecord } from './Queue/Failed/FailedJobProvider';
128
+ export { DatabaseFailedJobProvider } from './Queue/Failed/DatabaseFailedJobProvider';
129
+ export { Batch } from './Queue/Batching/Batch';
130
+ export { PendingBatch } from './Queue/Batching/PendingBatch';
131
+ export { JobQueued } from './Queue/Events/JobQueued';
132
+ export { JobProcessing } from './Queue/Events/JobProcessing';
133
+ export { JobProcessed } from './Queue/Events/JobProcessed';
134
+ export { JobFailed } from './Queue/Events/JobFailed';
135
+ export { JobExceptionOccurred } from './Queue/Events/JobExceptionOccurred';
136
+ export { JobRetryRequested } from './Queue/Events/JobRetryRequested';
137
+ export { WorkerStopping } from './Queue/Events/WorkerStopping';
138
+ export { isShouldQueue } from './Listeners/Contracts/ShouldQueue';
139
+ export type { ShouldQueue } from './Listeners/Contracts/ShouldQueue';
90
140
  export type { HttpMethod, RouteAction, Middleware } from './Routing/Route';
91
141
  export type { Abstract, Concrete, Binding } from './Container/Container';
92
142
  export type { CookieOptions } from './Routing/Response';