@orchestr-sh/orchestr 1.7.4 → 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +666 -0
- package/dist/Cache/CacheManager.d.ts +109 -0
- package/dist/Cache/CacheManager.d.ts.map +1 -0
- package/dist/Cache/CacheManager.js +181 -0
- package/dist/Cache/CacheManager.js.map +1 -0
- package/dist/Cache/CacheServiceProvider.d.ts +19 -0
- package/dist/Cache/CacheServiceProvider.d.ts.map +1 -0
- package/dist/Cache/CacheServiceProvider.js +71 -0
- package/dist/Cache/CacheServiceProvider.js.map +1 -0
- package/dist/Cache/Contracts/Lock.d.ts +31 -0
- package/dist/Cache/Contracts/Lock.d.ts.map +1 -0
- package/dist/Cache/Contracts/Lock.js +3 -0
- package/dist/Cache/Contracts/Lock.js.map +1 -0
- package/dist/Cache/Contracts/Repository.d.ts +59 -0
- package/dist/Cache/Contracts/Repository.d.ts.map +1 -0
- package/dist/Cache/Contracts/Repository.js +9 -0
- package/dist/Cache/Contracts/Repository.js.map +1 -0
- package/dist/Cache/Contracts/Store.d.ts +51 -0
- package/dist/Cache/Contracts/Store.d.ts.map +1 -0
- package/dist/Cache/Contracts/Store.js +3 -0
- package/dist/Cache/Contracts/Store.js.map +1 -0
- package/dist/Cache/Events/CacheFlushed.d.ts +11 -0
- package/dist/Cache/Events/CacheFlushed.d.ts.map +1 -0
- package/dist/Cache/Events/CacheFlushed.js +18 -0
- package/dist/Cache/Events/CacheFlushed.js.map +1 -0
- package/dist/Cache/Events/CacheHit.d.ts +13 -0
- package/dist/Cache/Events/CacheHit.d.ts.map +1 -0
- package/dist/Cache/Events/CacheHit.js +22 -0
- package/dist/Cache/Events/CacheHit.js.map +1 -0
- package/dist/Cache/Events/CacheMissed.d.ts +12 -0
- package/dist/Cache/Events/CacheMissed.d.ts.map +1 -0
- package/dist/Cache/Events/CacheMissed.js +20 -0
- package/dist/Cache/Events/CacheMissed.js.map +1 -0
- package/dist/Cache/Events/KeyForgotten.d.ts +12 -0
- package/dist/Cache/Events/KeyForgotten.d.ts.map +1 -0
- package/dist/Cache/Events/KeyForgotten.js +20 -0
- package/dist/Cache/Events/KeyForgotten.js.map +1 -0
- package/dist/Cache/Events/KeyWritten.d.ts +14 -0
- package/dist/Cache/Events/KeyWritten.d.ts.map +1 -0
- package/dist/Cache/Events/KeyWritten.js +24 -0
- package/dist/Cache/Events/KeyWritten.js.map +1 -0
- package/dist/Cache/Events/index.d.ts +6 -0
- package/dist/Cache/Events/index.d.ts.map +1 -0
- package/dist/Cache/Events/index.js +14 -0
- package/dist/Cache/Events/index.js.map +1 -0
- package/dist/Cache/Locks/CacheLock.d.ts +19 -0
- package/dist/Cache/Locks/CacheLock.d.ts.map +1 -0
- package/dist/Cache/Locks/CacheLock.js +49 -0
- package/dist/Cache/Locks/CacheLock.js.map +1 -0
- package/dist/Cache/Locks/Lock.d.ts +51 -0
- package/dist/Cache/Locks/Lock.d.ts.map +1 -0
- package/dist/Cache/Locks/Lock.js +83 -0
- package/dist/Cache/Locks/Lock.js.map +1 -0
- package/dist/Cache/Locks/LockTimeoutException.d.ts +9 -0
- package/dist/Cache/Locks/LockTimeoutException.d.ts.map +1 -0
- package/dist/Cache/Locks/LockTimeoutException.js +16 -0
- package/dist/Cache/Locks/LockTimeoutException.js.map +1 -0
- package/dist/Cache/Locks/index.d.ts +4 -0
- package/dist/Cache/Locks/index.d.ts.map +1 -0
- package/dist/Cache/Locks/index.js +10 -0
- package/dist/Cache/Locks/index.js.map +1 -0
- package/dist/Cache/Repository.d.ts +61 -0
- package/dist/Cache/Repository.d.ts.map +1 -0
- package/dist/Cache/Repository.js +207 -0
- package/dist/Cache/Repository.js.map +1 -0
- package/dist/Cache/Stores/ArrayStore.d.ts +44 -0
- package/dist/Cache/Stores/ArrayStore.d.ts.map +1 -0
- package/dist/Cache/Stores/ArrayStore.js +118 -0
- package/dist/Cache/Stores/ArrayStore.js.map +1 -0
- package/dist/Cache/Stores/DatabaseStore.d.ts +44 -0
- package/dist/Cache/Stores/DatabaseStore.d.ts.map +1 -0
- package/dist/Cache/Stores/DatabaseStore.js +165 -0
- package/dist/Cache/Stores/DatabaseStore.js.map +1 -0
- package/dist/Cache/Stores/FileStore.d.ts +50 -0
- package/dist/Cache/Stores/FileStore.d.ts.map +1 -0
- package/dist/Cache/Stores/FileStore.js +194 -0
- package/dist/Cache/Stores/FileStore.js.map +1 -0
- package/dist/Cache/Stores/NullStore.d.ts +22 -0
- package/dist/Cache/Stores/NullStore.d.ts.map +1 -0
- package/dist/Cache/Stores/NullStore.js +49 -0
- package/dist/Cache/Stores/NullStore.js.map +1 -0
- package/dist/Cache/Stores/index.d.ts +5 -0
- package/dist/Cache/Stores/index.d.ts.map +1 -0
- package/dist/Cache/Stores/index.js +12 -0
- package/dist/Cache/Stores/index.js.map +1 -0
- package/dist/Cache/Tags/TagSet.d.ts +39 -0
- package/dist/Cache/Tags/TagSet.d.ts.map +1 -0
- package/dist/Cache/Tags/TagSet.js +72 -0
- package/dist/Cache/Tags/TagSet.js.map +1 -0
- package/dist/Cache/Tags/TaggedCache.d.ts +54 -0
- package/dist/Cache/Tags/TaggedCache.d.ts.map +1 -0
- package/dist/Cache/Tags/TaggedCache.js +125 -0
- package/dist/Cache/Tags/TaggedCache.js.map +1 -0
- package/dist/Cache/Tags/index.d.ts +3 -0
- package/dist/Cache/Tags/index.d.ts.map +1 -0
- package/dist/Cache/Tags/index.js +8 -0
- package/dist/Cache/Tags/index.js.map +1 -0
- package/dist/Cache/index.d.ts +27 -0
- package/dist/Cache/index.d.ts.map +1 -0
- package/dist/Cache/index.js +48 -0
- package/dist/Cache/index.js.map +1 -0
- package/dist/Console/Commands/CacheClearCommand.d.ts +16 -0
- package/dist/Console/Commands/CacheClearCommand.d.ts.map +1 -0
- package/dist/Console/Commands/CacheClearCommand.js +33 -0
- package/dist/Console/Commands/CacheClearCommand.js.map +1 -0
- package/dist/Console/Commands/CacheForgetCommand.d.ts +16 -0
- package/dist/Console/Commands/CacheForgetCommand.d.ts.map +1 -0
- package/dist/Console/Commands/CacheForgetCommand.js +39 -0
- package/dist/Console/Commands/CacheForgetCommand.js.map +1 -0
- package/dist/Console/Commands/CacheTableCommand.d.ts +17 -0
- package/dist/Console/Commands/CacheTableCommand.d.ts.map +1 -0
- package/dist/Console/Commands/CacheTableCommand.js +92 -0
- package/dist/Console/Commands/CacheTableCommand.js.map +1 -0
- 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/Cache.d.ts +41 -0
- package/dist/Facades/Cache.d.ts.map +1 -0
- package/dist/Facades/Cache.js +78 -0
- package/dist/Facades/Cache.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 +3 -0
- package/dist/Facades/index.d.ts.map +1 -1
- package/dist/Facades/index.js +7 -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 +75 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +141 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -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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"}
|