flashq 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/connection.d.ts +2 -1
- package/dist/client/connection.d.ts.map +1 -1
- package/dist/client/connection.js +16 -14
- package/dist/client/connection.js.map +1 -1
- package/dist/client/methods/core.d.ts.map +1 -1
- package/dist/client/methods/core.js +20 -78
- package/dist/client/methods/core.js.map +1 -1
- package/dist/client/methods/jobs.d.ts.map +1 -1
- package/dist/client/methods/jobs.js +3 -2
- package/dist/client/methods/jobs.js.map +1 -1
- package/dist/client/validation.d.ts +43 -0
- package/dist/client/validation.d.ts.map +1 -1
- package/dist/client/validation.js +43 -2
- package/dist/client/validation.js.map +1 -1
- package/dist/constants.d.ts +67 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +79 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -1
- package/dist/index.js.map +1 -1
- package/dist/queue.d.ts +16 -1
- package/dist/queue.d.ts.map +1 -1
- package/dist/queue.js +3 -0
- package/dist/queue.js.map +1 -1
- package/dist/utils/retry.d.ts +1 -1
- package/dist/utils/retry.d.ts.map +1 -1
- package/dist/utils/retry.js +11 -10
- package/dist/utils/retry.js.map +1 -1
- package/dist/worker.d.ts +1 -1
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +29 -32
- package/dist/worker.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Constants
|
|
3
|
+
*
|
|
4
|
+
* Centralized configuration constants to avoid magic numbers
|
|
5
|
+
* and ensure consistency across the codebase.
|
|
6
|
+
*/
|
|
7
|
+
/** Maximum allowed job data size in bytes (1MB) */
|
|
8
|
+
export declare const MAX_JOB_DATA_SIZE: number;
|
|
9
|
+
/** Maximum number of jobs per batch operation */
|
|
10
|
+
export declare const MAX_BATCH_SIZE = 1000;
|
|
11
|
+
/** Maximum queue name length */
|
|
12
|
+
export declare const MAX_QUEUE_NAME_LENGTH = 256;
|
|
13
|
+
/** Default connection timeout in ms */
|
|
14
|
+
export declare const DEFAULT_CONNECTION_TIMEOUT = 5000;
|
|
15
|
+
/** Default server-side pull timeout in ms */
|
|
16
|
+
export declare const DEFAULT_PULL_TIMEOUT = 60000;
|
|
17
|
+
/** Additional client timeout buffer over server timeout */
|
|
18
|
+
export declare const CLIENT_TIMEOUT_BUFFER = 5000;
|
|
19
|
+
/** Default job completion wait timeout in ms */
|
|
20
|
+
export declare const DEFAULT_FINISHED_TIMEOUT = 30000;
|
|
21
|
+
/** Default worker concurrency */
|
|
22
|
+
export declare const DEFAULT_WORKER_CONCURRENCY = 10;
|
|
23
|
+
/** Default worker batch size */
|
|
24
|
+
export declare const DEFAULT_WORKER_BATCH_SIZE = 100;
|
|
25
|
+
/** Worker pull timeout for responsive shutdown (ms) */
|
|
26
|
+
export declare const WORKER_PULL_TIMEOUT = 500;
|
|
27
|
+
/** Worker error retry delay (ms) */
|
|
28
|
+
export declare const WORKER_ERROR_RETRY_DELAY = 1000;
|
|
29
|
+
/** Default graceful shutdown timeout (ms) */
|
|
30
|
+
export declare const DEFAULT_CLOSE_TIMEOUT = 30000;
|
|
31
|
+
/** Worker job completion check interval (ms) */
|
|
32
|
+
export declare const WORKER_JOB_CHECK_INTERVAL = 50;
|
|
33
|
+
/** Default initial reconnect delay in ms */
|
|
34
|
+
export declare const DEFAULT_RECONNECT_DELAY = 1000;
|
|
35
|
+
/** Default max reconnect delay in ms */
|
|
36
|
+
export declare const DEFAULT_MAX_RECONNECT_DELAY = 30000;
|
|
37
|
+
/** Default max reconnect attempts (0 = infinite) */
|
|
38
|
+
export declare const DEFAULT_MAX_RECONNECT_ATTEMPTS = 10;
|
|
39
|
+
/** Reconnect jitter factor (0.3 = 30% of base delay) */
|
|
40
|
+
export declare const RECONNECT_JITTER_FACTOR = 0.3;
|
|
41
|
+
/** Default retry max attempts */
|
|
42
|
+
export declare const DEFAULT_RETRY_MAX_ATTEMPTS = 3;
|
|
43
|
+
/** Default retry initial delay in ms */
|
|
44
|
+
export declare const DEFAULT_RETRY_INITIAL_DELAY = 100;
|
|
45
|
+
/** Default retry max delay in ms */
|
|
46
|
+
export declare const DEFAULT_RETRY_MAX_DELAY = 5000;
|
|
47
|
+
/** Default backoff multiplier */
|
|
48
|
+
export declare const DEFAULT_BACKOFF_MULTIPLIER = 2;
|
|
49
|
+
/** Jitter range factor (0.25 = ±25%) */
|
|
50
|
+
export declare const RETRY_JITTER_FACTOR = 0.25;
|
|
51
|
+
/** Default compression enabled state */
|
|
52
|
+
export declare const DEFAULT_COMPRESSION_ENABLED = false;
|
|
53
|
+
/** Default minimum payload size to compress in bytes */
|
|
54
|
+
export declare const DEFAULT_COMPRESSION_THRESHOLD = 1024;
|
|
55
|
+
/** Default max queued requests during disconnect */
|
|
56
|
+
export declare const DEFAULT_MAX_QUEUED_REQUESTS = 100;
|
|
57
|
+
/** Default job priority */
|
|
58
|
+
export declare const DEFAULT_JOB_PRIORITY = 0;
|
|
59
|
+
/** Default stall detection timeout in ms */
|
|
60
|
+
export declare const DEFAULT_STALL_TIMEOUT = 30000;
|
|
61
|
+
/** Default TCP port */
|
|
62
|
+
export declare const DEFAULT_TCP_PORT = 6789;
|
|
63
|
+
/** Default HTTP port */
|
|
64
|
+
export declare const DEFAULT_HTTP_PORT = 6790;
|
|
65
|
+
/** Default host */
|
|
66
|
+
export declare const DEFAULT_HOST = "localhost";
|
|
67
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,QAAc,CAAC;AAE7C,iDAAiD;AACjD,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,gCAAgC;AAChC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAIzC,uCAAuC;AACvC,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,6CAA6C;AAC7C,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAE1C,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,gDAAgD;AAChD,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAI9C,iCAAiC;AACjC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,gCAAgC;AAChC,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,oCAAoC;AACpC,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C,gDAAgD;AAChD,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAI5C,4CAA4C;AAC5C,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,wCAAwC;AACxC,eAAO,MAAM,2BAA2B,QAAQ,CAAC;AAEjD,oDAAoD;AACpD,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,wDAAwD;AACxD,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAI3C,iCAAiC;AACjC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,wCAAwC;AACxC,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,oCAAoC;AACpC,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,iCAAiC;AACjC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,wCAAwC;AACxC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAIxC,wCAAwC;AACxC,eAAO,MAAM,2BAA2B,QAAQ,CAAC;AAEjD,wDAAwD;AACxD,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAIlD,oDAAoD;AACpD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAI/C,2BAA2B;AAC3B,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAI3C,uBAAuB;AACvB,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,wBAAwB;AACxB,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,mBAAmB;AACnB,eAAO,MAAM,YAAY,cAAc,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SDK Constants
|
|
4
|
+
*
|
|
5
|
+
* Centralized configuration constants to avoid magic numbers
|
|
6
|
+
* and ensure consistency across the codebase.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.DEFAULT_HOST = exports.DEFAULT_HTTP_PORT = exports.DEFAULT_TCP_PORT = exports.DEFAULT_STALL_TIMEOUT = exports.DEFAULT_JOB_PRIORITY = exports.DEFAULT_MAX_QUEUED_REQUESTS = exports.DEFAULT_COMPRESSION_THRESHOLD = exports.DEFAULT_COMPRESSION_ENABLED = exports.RETRY_JITTER_FACTOR = exports.DEFAULT_BACKOFF_MULTIPLIER = exports.DEFAULT_RETRY_MAX_DELAY = exports.DEFAULT_RETRY_INITIAL_DELAY = exports.DEFAULT_RETRY_MAX_ATTEMPTS = exports.RECONNECT_JITTER_FACTOR = exports.DEFAULT_MAX_RECONNECT_ATTEMPTS = exports.DEFAULT_MAX_RECONNECT_DELAY = exports.DEFAULT_RECONNECT_DELAY = exports.WORKER_JOB_CHECK_INTERVAL = exports.DEFAULT_CLOSE_TIMEOUT = exports.WORKER_ERROR_RETRY_DELAY = exports.WORKER_PULL_TIMEOUT = exports.DEFAULT_WORKER_BATCH_SIZE = exports.DEFAULT_WORKER_CONCURRENCY = exports.DEFAULT_FINISHED_TIMEOUT = exports.CLIENT_TIMEOUT_BUFFER = exports.DEFAULT_PULL_TIMEOUT = exports.DEFAULT_CONNECTION_TIMEOUT = exports.MAX_QUEUE_NAME_LENGTH = exports.MAX_BATCH_SIZE = exports.MAX_JOB_DATA_SIZE = void 0;
|
|
10
|
+
// ============== Validation Limits ==============
|
|
11
|
+
/** Maximum allowed job data size in bytes (1MB) */
|
|
12
|
+
exports.MAX_JOB_DATA_SIZE = 1024 * 1024;
|
|
13
|
+
/** Maximum number of jobs per batch operation */
|
|
14
|
+
exports.MAX_BATCH_SIZE = 1000;
|
|
15
|
+
/** Maximum queue name length */
|
|
16
|
+
exports.MAX_QUEUE_NAME_LENGTH = 256;
|
|
17
|
+
// ============== Timeouts ==============
|
|
18
|
+
/** Default connection timeout in ms */
|
|
19
|
+
exports.DEFAULT_CONNECTION_TIMEOUT = 5000;
|
|
20
|
+
/** Default server-side pull timeout in ms */
|
|
21
|
+
exports.DEFAULT_PULL_TIMEOUT = 60000;
|
|
22
|
+
/** Additional client timeout buffer over server timeout */
|
|
23
|
+
exports.CLIENT_TIMEOUT_BUFFER = 5000;
|
|
24
|
+
/** Default job completion wait timeout in ms */
|
|
25
|
+
exports.DEFAULT_FINISHED_TIMEOUT = 30000;
|
|
26
|
+
// ============== Worker Defaults ==============
|
|
27
|
+
/** Default worker concurrency */
|
|
28
|
+
exports.DEFAULT_WORKER_CONCURRENCY = 10;
|
|
29
|
+
/** Default worker batch size */
|
|
30
|
+
exports.DEFAULT_WORKER_BATCH_SIZE = 100;
|
|
31
|
+
/** Worker pull timeout for responsive shutdown (ms) */
|
|
32
|
+
exports.WORKER_PULL_TIMEOUT = 500;
|
|
33
|
+
/** Worker error retry delay (ms) */
|
|
34
|
+
exports.WORKER_ERROR_RETRY_DELAY = 1000;
|
|
35
|
+
/** Default graceful shutdown timeout (ms) */
|
|
36
|
+
exports.DEFAULT_CLOSE_TIMEOUT = 30000;
|
|
37
|
+
/** Worker job completion check interval (ms) */
|
|
38
|
+
exports.WORKER_JOB_CHECK_INTERVAL = 50;
|
|
39
|
+
// ============== Reconnection ==============
|
|
40
|
+
/** Default initial reconnect delay in ms */
|
|
41
|
+
exports.DEFAULT_RECONNECT_DELAY = 1000;
|
|
42
|
+
/** Default max reconnect delay in ms */
|
|
43
|
+
exports.DEFAULT_MAX_RECONNECT_DELAY = 30000;
|
|
44
|
+
/** Default max reconnect attempts (0 = infinite) */
|
|
45
|
+
exports.DEFAULT_MAX_RECONNECT_ATTEMPTS = 10;
|
|
46
|
+
/** Reconnect jitter factor (0.3 = 30% of base delay) */
|
|
47
|
+
exports.RECONNECT_JITTER_FACTOR = 0.3;
|
|
48
|
+
// ============== Retry ==============
|
|
49
|
+
/** Default retry max attempts */
|
|
50
|
+
exports.DEFAULT_RETRY_MAX_ATTEMPTS = 3;
|
|
51
|
+
/** Default retry initial delay in ms */
|
|
52
|
+
exports.DEFAULT_RETRY_INITIAL_DELAY = 100;
|
|
53
|
+
/** Default retry max delay in ms */
|
|
54
|
+
exports.DEFAULT_RETRY_MAX_DELAY = 5000;
|
|
55
|
+
/** Default backoff multiplier */
|
|
56
|
+
exports.DEFAULT_BACKOFF_MULTIPLIER = 2;
|
|
57
|
+
/** Jitter range factor (0.25 = ±25%) */
|
|
58
|
+
exports.RETRY_JITTER_FACTOR = 0.25;
|
|
59
|
+
// ============== Compression ==============
|
|
60
|
+
/** Default compression enabled state */
|
|
61
|
+
exports.DEFAULT_COMPRESSION_ENABLED = false;
|
|
62
|
+
/** Default minimum payload size to compress in bytes */
|
|
63
|
+
exports.DEFAULT_COMPRESSION_THRESHOLD = 1024;
|
|
64
|
+
// ============== Request Queue ==============
|
|
65
|
+
/** Default max queued requests during disconnect */
|
|
66
|
+
exports.DEFAULT_MAX_QUEUED_REQUESTS = 100;
|
|
67
|
+
// ============== Job Defaults ==============
|
|
68
|
+
/** Default job priority */
|
|
69
|
+
exports.DEFAULT_JOB_PRIORITY = 0;
|
|
70
|
+
/** Default stall detection timeout in ms */
|
|
71
|
+
exports.DEFAULT_STALL_TIMEOUT = 30000;
|
|
72
|
+
// ============== Ports ==============
|
|
73
|
+
/** Default TCP port */
|
|
74
|
+
exports.DEFAULT_TCP_PORT = 6789;
|
|
75
|
+
/** Default HTTP port */
|
|
76
|
+
exports.DEFAULT_HTTP_PORT = 6790;
|
|
77
|
+
/** Default host */
|
|
78
|
+
exports.DEFAULT_HOST = 'localhost';
|
|
79
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,kDAAkD;AAElD,mDAAmD;AACtC,QAAA,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7C,iDAAiD;AACpC,QAAA,cAAc,GAAG,IAAI,CAAC;AAEnC,gCAAgC;AACnB,QAAA,qBAAqB,GAAG,GAAG,CAAC;AAEzC,yCAAyC;AAEzC,uCAAuC;AAC1B,QAAA,0BAA0B,GAAG,IAAI,CAAC;AAE/C,6CAA6C;AAChC,QAAA,oBAAoB,GAAG,KAAK,CAAC;AAE1C,2DAA2D;AAC9C,QAAA,qBAAqB,GAAG,IAAI,CAAC;AAE1C,gDAAgD;AACnC,QAAA,wBAAwB,GAAG,KAAK,CAAC;AAE9C,gDAAgD;AAEhD,iCAAiC;AACpB,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAE7C,gCAAgC;AACnB,QAAA,yBAAyB,GAAG,GAAG,CAAC;AAE7C,uDAAuD;AAC1C,QAAA,mBAAmB,GAAG,GAAG,CAAC;AAEvC,oCAAoC;AACvB,QAAA,wBAAwB,GAAG,IAAI,CAAC;AAE7C,6CAA6C;AAChC,QAAA,qBAAqB,GAAG,KAAK,CAAC;AAE3C,gDAAgD;AACnC,QAAA,yBAAyB,GAAG,EAAE,CAAC;AAE5C,6CAA6C;AAE7C,4CAA4C;AAC/B,QAAA,uBAAuB,GAAG,IAAI,CAAC;AAE5C,wCAAwC;AAC3B,QAAA,2BAA2B,GAAG,KAAK,CAAC;AAEjD,oDAAoD;AACvC,QAAA,8BAA8B,GAAG,EAAE,CAAC;AAEjD,wDAAwD;AAC3C,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAE3C,sCAAsC;AAEtC,iCAAiC;AACpB,QAAA,0BAA0B,GAAG,CAAC,CAAC;AAE5C,wCAAwC;AAC3B,QAAA,2BAA2B,GAAG,GAAG,CAAC;AAE/C,oCAAoC;AACvB,QAAA,uBAAuB,GAAG,IAAI,CAAC;AAE5C,iCAAiC;AACpB,QAAA,0BAA0B,GAAG,CAAC,CAAC;AAE5C,wCAAwC;AAC3B,QAAA,mBAAmB,GAAG,IAAI,CAAC;AAExC,4CAA4C;AAE5C,wCAAwC;AAC3B,QAAA,2BAA2B,GAAG,KAAK,CAAC;AAEjD,wDAAwD;AAC3C,QAAA,6BAA6B,GAAG,IAAI,CAAC;AAElD,8CAA8C;AAE9C,oDAAoD;AACvC,QAAA,2BAA2B,GAAG,GAAG,CAAC;AAE/C,6CAA6C;AAE7C,2BAA2B;AACd,QAAA,oBAAoB,GAAG,CAAC,CAAC;AAEtC,4CAA4C;AAC/B,QAAA,qBAAqB,GAAG,KAAK,CAAC;AAE3C,sCAAsC;AAEtC,uBAAuB;AACV,QAAA,gBAAgB,GAAG,IAAI,CAAC;AAErC,wBAAwB;AACX,QAAA,iBAAiB,GAAG,IAAI,CAAC;AAEtC,mBAAmB;AACN,QAAA,YAAY,GAAG,WAAW,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,12 +19,14 @@
|
|
|
19
19
|
* @packageDocumentation
|
|
20
20
|
*/
|
|
21
21
|
export { Queue } from './queue';
|
|
22
|
-
export type { QueueOptions, JobOptions } from './queue';
|
|
22
|
+
export type { QueueOptions, JobOptions, JobReference } from './queue';
|
|
23
23
|
export { Worker } from './worker';
|
|
24
24
|
export type { BullMQWorkerOptions } from './worker';
|
|
25
25
|
export { FlashQ, FlashQ as default } from './client';
|
|
26
26
|
export { MAX_BATCH_SIZE, MAX_JOB_DATA_SIZE } from './client/methods/core';
|
|
27
|
-
export { validateQueueName, validateJobDataSize } from './client/connection';
|
|
27
|
+
export { validateQueueName, validateJobDataSize, mapJobToPayload } from './client/connection';
|
|
28
|
+
export type { JobPayload } from './client/connection';
|
|
29
|
+
export * as Constants from './constants';
|
|
28
30
|
export { EventSubscriber } from './events';
|
|
29
31
|
export { FlashQError, ConnectionError, AuthenticationError, TimeoutError, ValidationError, ServerError, JobNotFoundError, QueueNotFoundError, DuplicateJobError, QueuePausedError, RateLimitError, ConcurrencyLimitError, BatchError, Errors, } from './errors';
|
|
30
32
|
export { withRetry, retryable, isRetryable, RetryPresets } from './utils/retry';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC9F,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,EACL,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,UAAU,EACV,MAAM,GACP,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChF,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClF,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGpF,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClF,YAAY,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,GAAG,EACH,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -19,8 +19,41 @@
|
|
|
19
19
|
*
|
|
20
20
|
* @packageDocumentation
|
|
21
21
|
*/
|
|
22
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
23
|
+
if (k2 === undefined) k2 = k;
|
|
24
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
25
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
26
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
27
|
+
}
|
|
28
|
+
Object.defineProperty(o, k2, desc);
|
|
29
|
+
}) : (function(o, m, k, k2) {
|
|
30
|
+
if (k2 === undefined) k2 = k;
|
|
31
|
+
o[k2] = m[k];
|
|
32
|
+
}));
|
|
33
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
34
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
35
|
+
}) : function(o, v) {
|
|
36
|
+
o["default"] = v;
|
|
37
|
+
});
|
|
38
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
39
|
+
var ownKeys = function(o) {
|
|
40
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
41
|
+
var ar = [];
|
|
42
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
43
|
+
return ar;
|
|
44
|
+
};
|
|
45
|
+
return ownKeys(o);
|
|
46
|
+
};
|
|
47
|
+
return function (mod) {
|
|
48
|
+
if (mod && mod.__esModule) return mod;
|
|
49
|
+
var result = {};
|
|
50
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
51
|
+
__setModuleDefault(result, mod);
|
|
52
|
+
return result;
|
|
53
|
+
};
|
|
54
|
+
})();
|
|
22
55
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.getDuration = exports.createHookContext = exports.callErrorHook = exports.callHook = exports.setGlobalLogger = exports.getLogger = exports.createLogger = exports.Logger = exports.RetryPresets = exports.isRetryable = exports.retryable = exports.withRetry = exports.Errors = exports.BatchError = exports.ConcurrencyLimitError = exports.RateLimitError = exports.QueuePausedError = exports.DuplicateJobError = exports.QueueNotFoundError = exports.JobNotFoundError = exports.ServerError = exports.ValidationError = exports.TimeoutError = exports.AuthenticationError = exports.ConnectionError = exports.FlashQError = exports.EventSubscriber = exports.validateJobDataSize = exports.validateQueueName = exports.MAX_JOB_DATA_SIZE = exports.MAX_BATCH_SIZE = exports.default = exports.FlashQ = exports.Worker = exports.Queue = void 0;
|
|
56
|
+
exports.getDuration = exports.createHookContext = exports.callErrorHook = exports.callHook = exports.setGlobalLogger = exports.getLogger = exports.createLogger = exports.Logger = exports.RetryPresets = exports.isRetryable = exports.retryable = exports.withRetry = exports.Errors = exports.BatchError = exports.ConcurrencyLimitError = exports.RateLimitError = exports.QueuePausedError = exports.DuplicateJobError = exports.QueueNotFoundError = exports.JobNotFoundError = exports.ServerError = exports.ValidationError = exports.TimeoutError = exports.AuthenticationError = exports.ConnectionError = exports.FlashQError = exports.EventSubscriber = exports.Constants = exports.mapJobToPayload = exports.validateJobDataSize = exports.validateQueueName = exports.MAX_JOB_DATA_SIZE = exports.MAX_BATCH_SIZE = exports.default = exports.FlashQ = exports.Worker = exports.Queue = void 0;
|
|
24
57
|
// BullMQ-compatible API
|
|
25
58
|
var queue_1 = require("./queue");
|
|
26
59
|
Object.defineProperty(exports, "Queue", { enumerable: true, get: function () { return queue_1.Queue; } });
|
|
@@ -37,6 +70,9 @@ Object.defineProperty(exports, "MAX_JOB_DATA_SIZE", { enumerable: true, get: fun
|
|
|
37
70
|
var connection_1 = require("./client/connection");
|
|
38
71
|
Object.defineProperty(exports, "validateQueueName", { enumerable: true, get: function () { return connection_1.validateQueueName; } });
|
|
39
72
|
Object.defineProperty(exports, "validateJobDataSize", { enumerable: true, get: function () { return connection_1.validateJobDataSize; } });
|
|
73
|
+
Object.defineProperty(exports, "mapJobToPayload", { enumerable: true, get: function () { return connection_1.mapJobToPayload; } });
|
|
74
|
+
// All constants for advanced configuration
|
|
75
|
+
exports.Constants = __importStar(require("./constants"));
|
|
40
76
|
// Optional: Real-time events
|
|
41
77
|
var events_1 = require("./events");
|
|
42
78
|
Object.defineProperty(exports, "EventSubscriber", { enumerable: true, get: function () { return events_1.EventSubscriber; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,wBAAwB;AACxB,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AAGd,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAGf,gBAAgB;AAChB,mCAAqD;AAA5C,gGAAA,MAAM,OAAA;AAAE,iGAAA,MAAM,OAAW;AAElC,qCAAqC;AACrC,8CAA0E;AAAjE,sGAAA,cAAc,OAAA;AAAE,yGAAA,iBAAiB,OAAA;AAC1C,kDAA8F;AAArF,+GAAA,iBAAiB,OAAA;AAAE,iHAAA,mBAAmB,OAAA;AAAE,6GAAA,eAAe,OAAA;AAGhE,2CAA2C;AAC3C,yDAAyC;AAEzC,6BAA6B;AAC7B,mCAA2C;AAAlC,yGAAA,eAAe,OAAA;AAExB,SAAS;AACT,mCAekB;AAdhB,qGAAA,WAAW,OAAA;AACX,yGAAA,eAAe,OAAA;AACf,6GAAA,mBAAmB,OAAA;AACnB,sGAAA,YAAY,OAAA;AACZ,yGAAA,eAAe,OAAA;AACf,qGAAA,WAAW,OAAA;AACX,0GAAA,gBAAgB,OAAA;AAChB,4GAAA,kBAAkB,OAAA;AAClB,2GAAA,iBAAiB,OAAA;AACjB,0GAAA,gBAAgB,OAAA;AAChB,wGAAA,cAAc,OAAA;AACd,+GAAA,qBAAqB,OAAA;AACrB,oGAAA,UAAU,OAAA;AACV,gGAAA,MAAM,OAAA;AAGR,kBAAkB;AAClB,uCAAgF;AAAvE,kGAAA,SAAS,OAAA;AAAE,kGAAA,SAAS,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,qGAAA,YAAY,OAAA;AAGxD,mBAAmB;AACnB,yCAAkF;AAAzE,gGAAA,MAAM,OAAA;AAAE,sGAAA,YAAY,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,yGAAA,eAAe,OAAA;AAGzD,gDAAgD;AAChD,iCAAkF;AAAzE,iGAAA,QAAQ,OAAA;AAAE,sGAAA,aAAa,OAAA;AAAE,0GAAA,iBAAiB,OAAA;AAAE,oGAAA,WAAW,OAAA"}
|
package/dist/queue.d.ts
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import type { Job, ClientOptions } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Minimal job reference returned from bulk operations.
|
|
4
|
+
* Contains only the essential fields available immediately after creation.
|
|
5
|
+
*/
|
|
6
|
+
export interface JobReference<T = unknown> {
|
|
7
|
+
/** Server-assigned job ID */
|
|
8
|
+
id: number;
|
|
9
|
+
/** Queue name */
|
|
10
|
+
queue: string;
|
|
11
|
+
/** Original job data */
|
|
12
|
+
data: T;
|
|
13
|
+
}
|
|
2
14
|
export interface QueueOptions extends ClientOptions {
|
|
3
15
|
/** Default job options for all jobs in this queue */
|
|
4
16
|
defaultJobOptions?: JobOptions;
|
|
@@ -58,12 +70,15 @@ export declare class Queue<T = unknown> {
|
|
|
58
70
|
add(name: string, data: T, options?: JobOptions): Promise<Job<T>>;
|
|
59
71
|
/**
|
|
60
72
|
* Add multiple jobs (BullMQ-compatible)
|
|
73
|
+
*
|
|
74
|
+
* @returns Array of job references with id, queue, and data.
|
|
75
|
+
* Use getJob() if you need full job details.
|
|
61
76
|
*/
|
|
62
77
|
addBulk(jobs: Array<{
|
|
63
78
|
name: string;
|
|
64
79
|
data: T;
|
|
65
80
|
opts?: JobOptions;
|
|
66
|
-
}>): Promise<
|
|
81
|
+
}>): Promise<JobReference<T>[]>;
|
|
67
82
|
/**
|
|
68
83
|
* Get a job by ID
|
|
69
84
|
*/
|
package/dist/queue.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAe,aAAa,EAAE,MAAM,SAAS,CAAC;AAE/D,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,UAAU,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACpC,4BAA4B;IAC5B,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,KAAK,CAAC,CAAC,GAAG,OAAO;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,iBAAiB,CAAa;IAEtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB;IAMpD;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAkC3E
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"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"}
|
package/dist/queue.js
CHANGED
|
@@ -63,6 +63,9 @@ class Queue {
|
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
65
65
|
* Add multiple jobs (BullMQ-compatible)
|
|
66
|
+
*
|
|
67
|
+
* @returns Array of job references with id, queue, and data.
|
|
68
|
+
* Use getJob() if you need full job details.
|
|
66
69
|
*/
|
|
67
70
|
async addBulk(jobs) {
|
|
68
71
|
const flashqJobs = jobs.map((job) => {
|
package/dist/queue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,qCAAkC;
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/retry.d.ts
CHANGED
|
@@ -60,7 +60,7 @@ export declare function retryable<TArgs extends unknown[], TResult>(fn: (...args
|
|
|
60
60
|
export declare const RetryPresets: {
|
|
61
61
|
/** Quick retries for interactive operations */
|
|
62
62
|
fast: RetryOptions;
|
|
63
|
-
/** Standard retries for most operations */
|
|
63
|
+
/** Standard retries for most operations (uses SDK defaults) */
|
|
64
64
|
standard: RetryOptions;
|
|
65
65
|
/** Aggressive retries for critical operations */
|
|
66
66
|
aggressive: RetryOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,YAAY;IAC3B,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACzD,6BAA6B;IAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClE;AAUD,qCAAqC;AACrC,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAsBjD;AAED,8DAA8D;AAC9D,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC,GAC3E,MAAM,CAaR;AAOD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,CAuC/F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,EACxD,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,EACxC,OAAO,GAAE,YAAiB,GACzB,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAEtC;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB,+CAA+C;UAK1C,YAAY;IAEjB,+DAA+D;cAK1D,YAAY;IAEjB,iDAAiD;gBAK5C,YAAY;IAEjB,iBAAiB;UAGZ,YAAY;CAClB,CAAC"}
|
package/dist/utils/retry.js
CHANGED
|
@@ -9,11 +9,12 @@ exports.retryable = retryable;
|
|
|
9
9
|
* Retry utility for automatic retries on transient failures
|
|
10
10
|
*/
|
|
11
11
|
const errors_1 = require("../errors");
|
|
12
|
+
const constants_1 = require("../constants");
|
|
12
13
|
const DEFAULT_OPTIONS = {
|
|
13
|
-
maxRetries:
|
|
14
|
-
initialDelay:
|
|
15
|
-
maxDelay:
|
|
16
|
-
backoffMultiplier:
|
|
14
|
+
maxRetries: constants_1.DEFAULT_RETRY_MAX_ATTEMPTS,
|
|
15
|
+
initialDelay: constants_1.DEFAULT_RETRY_INITIAL_DELAY,
|
|
16
|
+
maxDelay: constants_1.DEFAULT_RETRY_MAX_DELAY,
|
|
17
|
+
backoffMultiplier: constants_1.DEFAULT_BACKOFF_MULTIPLIER,
|
|
17
18
|
jitter: true,
|
|
18
19
|
};
|
|
19
20
|
/** Check if an error is retryable */
|
|
@@ -42,8 +43,8 @@ function isRetryable(error) {
|
|
|
42
43
|
function calculateDelay(attempt, options) {
|
|
43
44
|
const delay = Math.min(options.initialDelay * Math.pow(options.backoffMultiplier, attempt - 1), options.maxDelay);
|
|
44
45
|
if (options.jitter) {
|
|
45
|
-
// Add ±25%
|
|
46
|
-
const jitterRange = delay *
|
|
46
|
+
// Add ±RETRY_JITTER_FACTOR jitter (default: ±25%)
|
|
47
|
+
const jitterRange = delay * constants_1.RETRY_JITTER_FACTOR;
|
|
47
48
|
return delay + (Math.random() * jitterRange * 2 - jitterRange);
|
|
48
49
|
}
|
|
49
50
|
return delay;
|
|
@@ -129,11 +130,11 @@ exports.RetryPresets = {
|
|
|
129
130
|
initialDelay: 50,
|
|
130
131
|
maxDelay: 500,
|
|
131
132
|
},
|
|
132
|
-
/** Standard retries for most operations */
|
|
133
|
+
/** Standard retries for most operations (uses SDK defaults) */
|
|
133
134
|
standard: {
|
|
134
|
-
maxRetries:
|
|
135
|
-
initialDelay:
|
|
136
|
-
maxDelay:
|
|
135
|
+
maxRetries: constants_1.DEFAULT_RETRY_MAX_ATTEMPTS,
|
|
136
|
+
initialDelay: constants_1.DEFAULT_RETRY_INITIAL_DELAY,
|
|
137
|
+
maxDelay: constants_1.DEFAULT_RETRY_MAX_DELAY,
|
|
137
138
|
},
|
|
138
139
|
/** Aggressive retries for critical operations */
|
|
139
140
|
aggressive: {
|
package/dist/utils/retry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"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"}
|
package/dist/worker.d.ts
CHANGED
|
@@ -48,7 +48,7 @@ export declare class Worker<T = unknown, R = unknown> extends EventEmitter {
|
|
|
48
48
|
private stopPromise;
|
|
49
49
|
private abortController;
|
|
50
50
|
private workerHooks?;
|
|
51
|
-
private
|
|
51
|
+
private logger;
|
|
52
52
|
constructor(queues: string | string[], processor: JobProcessor<T, R>, options?: BullMQWorkerOptions);
|
|
53
53
|
/**
|
|
54
54
|
* Start processing jobs
|
package/dist/worker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAO,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAIL,KAAK,WAAW,EAEjB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAO,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAIL,KAAK,WAAW,EAEjB,MAAM,SAAS,CAAC;AAWjB,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,aAAa;IACtF,2DAA2D;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qCAAqC;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,KAAK,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,CAAE,SAAQ,YAAY;IAChE,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,OAAO,CAIb;IACF,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,MAAM,CAAS;gBAGrB,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EACzB,SAAS,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAC7B,OAAO,GAAE,mBAAwB;IAwCnC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAyBd,OAAO;IAoBrB;;;OAGG;IACG,KAAK,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC;;;OAGG;IACG,IAAI,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YA2B1B,MAAM;IAmDpB;;;;OAIG;IACG,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBrD;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,QAAQ,IAAI,WAAW;IAIvB;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;YACW,eAAe;IAuC7B;;OAEG;YACW,eAAe;YAwEf,UAAU;IAIxB,OAAO,CAAC,KAAK;IAIb;;;;OAIG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAcvF;AAED,eAAe,MAAM,CAAC"}
|
package/dist/worker.js
CHANGED
|
@@ -4,6 +4,8 @@ exports.Worker = void 0;
|
|
|
4
4
|
const events_1 = require("events");
|
|
5
5
|
const client_1 = require("./client");
|
|
6
6
|
const hooks_1 = require("./hooks");
|
|
7
|
+
const logger_1 = require("./utils/logger");
|
|
8
|
+
const constants_1 = require("./constants");
|
|
7
9
|
/**
|
|
8
10
|
* FlashQ Worker (BullMQ-compatible)
|
|
9
11
|
*
|
|
@@ -40,31 +42,26 @@ class Worker extends events_1.EventEmitter {
|
|
|
40
42
|
stopPromise = null;
|
|
41
43
|
abortController = null;
|
|
42
44
|
workerHooks;
|
|
43
|
-
|
|
44
|
-
if (!this.options.debug)
|
|
45
|
-
return;
|
|
46
|
-
const timestamp = new Date().toISOString();
|
|
47
|
-
const prefix = `[flashQ Worker ${this.options.id} ${timestamp}]`;
|
|
48
|
-
if (data !== undefined) {
|
|
49
|
-
console.log(`${prefix} ${message}`, data);
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
console.log(`${prefix} ${message}`);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
45
|
+
logger;
|
|
55
46
|
constructor(queues, processor, options = {}) {
|
|
56
47
|
super();
|
|
57
48
|
this.queues = Array.isArray(queues) ? queues : [queues];
|
|
58
49
|
this.processor = processor;
|
|
50
|
+
const workerId = options.id ?? `worker-${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
59
51
|
this.options = {
|
|
60
|
-
id:
|
|
61
|
-
concurrency: options.concurrency ??
|
|
62
|
-
batchSize: options.batchSize ??
|
|
52
|
+
id: workerId,
|
|
53
|
+
concurrency: options.concurrency ?? constants_1.DEFAULT_WORKER_CONCURRENCY,
|
|
54
|
+
batchSize: options.batchSize ?? constants_1.DEFAULT_WORKER_BATCH_SIZE,
|
|
63
55
|
autoAck: options.autoAck ?? true,
|
|
64
56
|
autorun: options.autorun ?? true,
|
|
65
57
|
debug: options.debug ?? false,
|
|
66
|
-
closeTimeout: options.closeTimeout ??
|
|
58
|
+
closeTimeout: options.closeTimeout ?? constants_1.DEFAULT_CLOSE_TIMEOUT,
|
|
67
59
|
};
|
|
60
|
+
// Initialize logger with worker-specific prefix
|
|
61
|
+
this.logger = new logger_1.Logger({
|
|
62
|
+
level: this.options.debug ? 'debug' : 'silent',
|
|
63
|
+
prefix: `flashQ:worker:${workerId}`,
|
|
64
|
+
});
|
|
68
65
|
this.workerHooks = options.workerHooks;
|
|
69
66
|
this.clientOptions = {
|
|
70
67
|
host: options.host,
|
|
@@ -103,17 +100,17 @@ class Worker extends events_1.EventEmitter {
|
|
|
103
100
|
}
|
|
104
101
|
}
|
|
105
102
|
async doStart() {
|
|
106
|
-
this.
|
|
103
|
+
this.logger.info('Starting worker', { queues: this.queues, concurrency: this.options.concurrency });
|
|
107
104
|
// Create a separate client for each worker (TCP pull is blocking)
|
|
108
105
|
for (let i = 0; i < this.options.concurrency; i++) {
|
|
109
106
|
const client = new client_1.FlashQ({ ...this.clientOptions, debug: this.options.debug });
|
|
110
107
|
await client.connect();
|
|
111
108
|
this.clients.push(client);
|
|
112
|
-
this.
|
|
109
|
+
this.logger.debug(`Client ${i} connected`);
|
|
113
110
|
}
|
|
114
111
|
this.state = 'running';
|
|
115
112
|
this.emit('ready');
|
|
116
|
-
this.
|
|
113
|
+
this.logger.info('Worker ready');
|
|
117
114
|
// Start worker loops (each with its own client)
|
|
118
115
|
for (let i = 0; i < this.options.concurrency; i++) {
|
|
119
116
|
this.workers.push(this.batchWorkerLoop(i, this.clients[i]));
|
|
@@ -154,7 +151,7 @@ class Worker extends events_1.EventEmitter {
|
|
|
154
151
|
}
|
|
155
152
|
}
|
|
156
153
|
async doStop(force) {
|
|
157
|
-
this.
|
|
154
|
+
this.logger.info('Stopping worker', { processing: this.processing, force });
|
|
158
155
|
if (force) {
|
|
159
156
|
// Force close - abort immediately
|
|
160
157
|
this.abortController?.abort();
|
|
@@ -170,7 +167,7 @@ class Worker extends events_1.EventEmitter {
|
|
|
170
167
|
timeoutPromise,
|
|
171
168
|
]);
|
|
172
169
|
if (result === 'timeout') {
|
|
173
|
-
this.
|
|
170
|
+
this.logger.warn('Graceful shutdown timeout reached', { timeout, processing: this.processing });
|
|
174
171
|
this.emit('error', new Error(`Shutdown timeout after ${timeout}ms with ${this.processing} jobs still processing`));
|
|
175
172
|
}
|
|
176
173
|
}
|
|
@@ -180,16 +177,16 @@ class Worker extends events_1.EventEmitter {
|
|
|
180
177
|
}
|
|
181
178
|
}
|
|
182
179
|
this.workers = [];
|
|
183
|
-
this.
|
|
180
|
+
this.logger.debug('All worker loops stopped');
|
|
184
181
|
// Close all clients
|
|
185
182
|
const clientsToClose = [...this.clients];
|
|
186
183
|
this.clients = [];
|
|
187
184
|
await Promise.all(clientsToClose.map((c) => c.close()));
|
|
188
|
-
this.
|
|
185
|
+
this.logger.debug('All clients closed');
|
|
189
186
|
this.state = 'stopped';
|
|
190
187
|
this.emit('stopped');
|
|
191
188
|
this.emit('drained');
|
|
192
|
-
this.
|
|
189
|
+
this.logger.info('Worker stopped', { totalProcessed: this.jobsProcessed });
|
|
193
190
|
}
|
|
194
191
|
/**
|
|
195
192
|
* Wait for all currently processing jobs to complete
|
|
@@ -207,7 +204,7 @@ class Worker extends events_1.EventEmitter {
|
|
|
207
204
|
clearTimeout(timer);
|
|
208
205
|
resolve(true);
|
|
209
206
|
}
|
|
210
|
-
},
|
|
207
|
+
}, constants_1.WORKER_JOB_CHECK_INTERVAL);
|
|
211
208
|
const timer = setTimeout(() => {
|
|
212
209
|
clearInterval(checkInterval);
|
|
213
210
|
resolve(false);
|
|
@@ -249,8 +246,8 @@ class Worker extends events_1.EventEmitter {
|
|
|
249
246
|
if (this.state !== 'running')
|
|
250
247
|
break;
|
|
251
248
|
try {
|
|
252
|
-
// Batch pull with SHORT timeout
|
|
253
|
-
const jobs = await client.pullBatch(queue, batchSize,
|
|
249
|
+
// Batch pull with SHORT timeout for responsive shutdown
|
|
250
|
+
const jobs = await client.pullBatch(queue, batchSize, constants_1.WORKER_PULL_TIMEOUT);
|
|
254
251
|
// No jobs available - continue polling
|
|
255
252
|
if (!jobs || jobs.length === 0) {
|
|
256
253
|
continue;
|
|
@@ -269,12 +266,12 @@ class Worker extends events_1.EventEmitter {
|
|
|
269
266
|
// Connection error - wait before retry
|
|
270
267
|
if (this.state === 'running') {
|
|
271
268
|
this.emit('error', error);
|
|
272
|
-
await this.sleep(
|
|
269
|
+
await this.sleep(constants_1.WORKER_ERROR_RETRY_DELAY);
|
|
273
270
|
}
|
|
274
271
|
}
|
|
275
272
|
}
|
|
276
273
|
}
|
|
277
|
-
this.
|
|
274
|
+
this.logger.debug(`Worker loop ${workerId} exited`, { state: this.state });
|
|
278
275
|
}
|
|
279
276
|
/**
|
|
280
277
|
* Process a batch of jobs - always completes even during shutdown
|
|
@@ -350,16 +347,16 @@ class Worker extends events_1.EventEmitter {
|
|
|
350
347
|
async updateProgress(jobId, progress, message) {
|
|
351
348
|
if (this.state !== 'running') {
|
|
352
349
|
const error = new Error(`Cannot update progress: worker is ${this.state}`);
|
|
353
|
-
this.
|
|
350
|
+
this.logger.warn('updateProgress failed', { jobId, state: this.state });
|
|
354
351
|
throw error;
|
|
355
352
|
}
|
|
356
353
|
if (this.clients.length === 0) {
|
|
357
354
|
const error = new Error('Cannot update progress: no active clients');
|
|
358
|
-
this.
|
|
355
|
+
this.logger.warn('updateProgress failed', { jobId, reason: 'no clients' });
|
|
359
356
|
throw error;
|
|
360
357
|
}
|
|
361
358
|
await this.clients[0].progress(jobId, progress, message);
|
|
362
|
-
this.
|
|
359
|
+
this.logger.debug('Progress updated', { jobId, progress, message });
|
|
363
360
|
}
|
|
364
361
|
}
|
|
365
362
|
exports.Worker = Worker;
|