queue-jobs-worker 1.0.2 → 1.0.3
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/CHANGELOG.md +155 -128
- package/README.md +133 -291
- package/assets/queue-jobs-worker-github.png +0 -0
- package/dist/core/worker.d.ts.map +1 -1
- package/dist/index.cjs +321 -92
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +321 -92
- package/dist/index.js.map +1 -1
- package/dist/storage/in-memory.adapter.d.ts +3 -2
- package/dist/storage/in-memory.adapter.d.ts.map +1 -1
- package/dist/storage/mysql.adapter.d.ts +3 -2
- package/dist/storage/mysql.adapter.d.ts.map +1 -1
- package/dist/storage/postgres.adapter.d.ts +3 -2
- package/dist/storage/postgres.adapter.d.ts.map +1 -1
- package/dist/storage/redis.adapter.d.ts +3 -2
- package/dist/storage/redis.adapter.d.ts.map +1 -1
- package/dist/types/storage.types.d.ts +20 -2
- package/dist/types/storage.types.d.ts.map +1 -1
- package/dist/types/worker.types.d.ts +1 -1
- package/dist/types/worker.types.d.ts.map +1 -1
- package/package.json +110 -109
|
@@ -18,10 +18,11 @@ export declare class InMemoryStorageAdapter implements StorageAdapter {
|
|
|
18
18
|
close(): Promise<void>;
|
|
19
19
|
enqueue<TPayload = unknown>(input: EnqueueInput<TPayload>): Promise<JobData<TPayload>>;
|
|
20
20
|
claim<TPayload = unknown>(input: ClaimInput): Promise<JobData<TPayload> | null>;
|
|
21
|
-
|
|
21
|
+
renewLock(jobId: string, lockId: string, lockDuration: number): Promise<boolean>;
|
|
22
|
+
complete(jobId: string, lockId?: string): Promise<void>;
|
|
22
23
|
requeue(input: RequeueInput): Promise<void>;
|
|
23
24
|
moveToDlq(input: MoveToDlqInput): Promise<void>;
|
|
24
|
-
releaseLock(jobId: string): Promise<void>;
|
|
25
|
+
releaseLock(jobId: string, lockId?: string): Promise<void>;
|
|
25
26
|
recoverStalledJobs(queue: string, now: string): Promise<string[]>;
|
|
26
27
|
getJob<TPayload = unknown>(jobId: string): Promise<JobData<TPayload> | null>;
|
|
27
28
|
getJobs<TPayload = unknown>(filter: GetJobsFilter): Promise<JobData<TPayload>[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory.adapter.d.ts","sourceRoot":"","sources":["../../src/storage/in-memory.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAehE,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuC;IAC5D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsC;IAMjE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAyCtF,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IA8C/E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"in-memory.adapter.d.ts","sourceRoot":"","sources":["../../src/storage/in-memory.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAehE,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuC;IAC5D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsC;IAMjE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAyCtF,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IA8C/E,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBhF,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvD,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B3C,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B/C,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B1D,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAsCjE,MAAM,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAI5E,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;IAmBhF,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAqB/D,0BAA0B,CAC9B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,CAAC;IAsBnB,OAAO,CAAC,UAAU;CAOnB"}
|
|
@@ -24,10 +24,11 @@ export declare class MySQLStorageAdapter implements StorageAdapter {
|
|
|
24
24
|
close(): Promise<void>;
|
|
25
25
|
enqueue<TPayload = unknown>(input: EnqueueInput<TPayload>): Promise<JobData<TPayload>>;
|
|
26
26
|
claim<TPayload = unknown>(input: ClaimInput): Promise<JobData<TPayload> | null>;
|
|
27
|
-
|
|
27
|
+
renewLock(jobId: string, lockId: string, lockDuration: number): Promise<boolean>;
|
|
28
|
+
complete(jobId: string, lockId?: string): Promise<void>;
|
|
28
29
|
requeue(input: RequeueInput): Promise<void>;
|
|
29
30
|
moveToDlq(input: MoveToDlqInput): Promise<void>;
|
|
30
|
-
releaseLock(jobId: string): Promise<void>;
|
|
31
|
+
releaseLock(jobId: string, lockId?: string): Promise<void>;
|
|
31
32
|
recoverStalledJobs(queue: string, now: string): Promise<string[]>;
|
|
32
33
|
getJob<TPayload = unknown>(jobId: string): Promise<JobData<TPayload> | null>;
|
|
33
34
|
getJobs<TPayload = unknown>(filter: GetJobsFilter): Promise<JobData<TPayload>[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mysql.adapter.d.ts","sourceRoot":"","sources":["../../src/storage/mysql.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAgIhE,qBAAa,mBAAoB,YAAW,cAAc;IACxD,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,gBAAgB,EAAE,MAAM;IAQ9B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtB,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAsCtF,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAyD/E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"mysql.adapter.d.ts","sourceRoot":"","sources":["../../src/storage/mysql.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAgIhE,qBAAa,mBAAoB,YAAW,cAAc;IACxD,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,gBAAgB,EAAE,MAAM;IAQ9B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtB,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAsCtF,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAyD/E,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBhF,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBvD,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C3C,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C/C,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB1D,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0CjE,MAAM,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAO5E,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;IA4BhF,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IA0B/D,0BAA0B,CAC9B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,CAAC;CAwBpB"}
|
|
@@ -24,10 +24,11 @@ export declare class PostgreSQLStorageAdapter implements StorageAdapter {
|
|
|
24
24
|
close(): Promise<void>;
|
|
25
25
|
enqueue<TPayload = unknown>(input: EnqueueInput<TPayload>): Promise<JobData<TPayload>>;
|
|
26
26
|
claim<TPayload = unknown>(input: ClaimInput): Promise<JobData<TPayload> | null>;
|
|
27
|
-
|
|
27
|
+
renewLock(jobId: string, lockId: string, lockDuration: number): Promise<boolean>;
|
|
28
|
+
complete(jobId: string, lockId?: string): Promise<void>;
|
|
28
29
|
requeue(input: RequeueInput): Promise<void>;
|
|
29
30
|
moveToDlq(input: MoveToDlqInput): Promise<void>;
|
|
30
|
-
releaseLock(jobId: string): Promise<void>;
|
|
31
|
+
releaseLock(jobId: string, lockId?: string): Promise<void>;
|
|
31
32
|
recoverStalledJobs(queue: string, now: string): Promise<string[]>;
|
|
32
33
|
getJob<TPayload = unknown>(jobId: string): Promise<JobData<TPayload> | null>;
|
|
33
34
|
getJobs<TPayload = unknown>(filter: GetJobsFilter): Promise<JobData<TPayload>[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.adapter.d.ts","sourceRoot":"","sources":["../../src/storage/postgres.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAuHhE,qBAAa,wBAAyB,YAAW,cAAc;IAC7D,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,gBAAgB,EAAE,MAAM;IAQ9B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtB,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IA2CtF,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAqD/E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"postgres.adapter.d.ts","sourceRoot":"","sources":["../../src/storage/postgres.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAuHhE,qBAAa,wBAAyB,YAAW,cAAc;IAC7D,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,gBAAgB,EAAE,MAAM;IAQ9B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtB,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IA2CtF,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAqD/E,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBhF,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBvD,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C3C,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C/C,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB1D,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBjE,MAAM,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAM5E,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;IA6BhF,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IA2B/D,0BAA0B,CAC9B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,CAAC;CA0BpB"}
|
|
@@ -31,10 +31,11 @@ export declare class RedisStorageAdapter implements StorageAdapter {
|
|
|
31
31
|
close(): Promise<void>;
|
|
32
32
|
enqueue<TPayload = unknown>(input: EnqueueInput<TPayload>): Promise<JobData<TPayload>>;
|
|
33
33
|
claim<TPayload = unknown>(input: ClaimInput): Promise<JobData<TPayload> | null>;
|
|
34
|
-
|
|
34
|
+
renewLock(jobId: string, lockId: string, lockDuration: number): Promise<boolean>;
|
|
35
|
+
complete(jobId: string, lockId?: string): Promise<void>;
|
|
35
36
|
requeue(input: RequeueInput): Promise<void>;
|
|
36
37
|
moveToDlq(input: MoveToDlqInput): Promise<void>;
|
|
37
|
-
releaseLock(jobId: string): Promise<void>;
|
|
38
|
+
releaseLock(jobId: string, lockId?: string): Promise<void>;
|
|
38
39
|
recoverStalledJobs(queue: string, now: string): Promise<string[]>;
|
|
39
40
|
getJob<TPayload = unknown>(jobId: string): Promise<JobData<TPayload> | null>;
|
|
40
41
|
getJobs<TPayload = unknown>(filter: GetJobsFilter): Promise<JobData<TPayload>[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.adapter.d.ts","sourceRoot":"","sources":["../../src/storage/redis.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAc,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"redis.adapter.d.ts","sourceRoot":"","sources":["../../src/storage/redis.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAc,MAAM,uBAAuB,CAAC;AAkP5E,qBAAa,mBAAoB,YAAW,cAAc;IACxD,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEjB,gBAAgB,EAAE,MAAM;IAQ9B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtB,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAwDtF,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAwB/E,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBhF,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BvD,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C3C,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC/C,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC1D,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA+DjE,MAAM,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAM5E,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;IAkDhF,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAgB/D,0BAA0B,CAC9B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,CAAC;CA2BpB"}
|
|
@@ -31,6 +31,8 @@ export interface RequeueInput {
|
|
|
31
31
|
stack?: string | undefined;
|
|
32
32
|
/** 1-based attempt number that just failed (used to populate attempt history). */
|
|
33
33
|
attemptNumber: number;
|
|
34
|
+
/** Optional lock ID to verify ownership before requeueing. */
|
|
35
|
+
lockId?: string | undefined;
|
|
34
36
|
}
|
|
35
37
|
export interface MoveToDlqInput {
|
|
36
38
|
jobId: string;
|
|
@@ -38,6 +40,8 @@ export interface MoveToDlqInput {
|
|
|
38
40
|
stack?: string | undefined;
|
|
39
41
|
/** 1-based attempt number that just failed (used to populate attempt history). */
|
|
40
42
|
attemptNumber: number;
|
|
43
|
+
/** Optional lock ID to verify ownership before moving to DLQ. */
|
|
44
|
+
lockId?: string | undefined;
|
|
41
45
|
}
|
|
42
46
|
export interface GetJobsFilter {
|
|
43
47
|
queue?: string | undefined;
|
|
@@ -79,26 +83,40 @@ export interface StorageAdapter {
|
|
|
79
83
|
* same job. Returns `null` when no eligible job is found.
|
|
80
84
|
*/
|
|
81
85
|
claim<TPayload = unknown>(input: ClaimInput): Promise<JobData<TPayload> | null>;
|
|
86
|
+
/**
|
|
87
|
+
* Renew an active job lock.
|
|
88
|
+
*
|
|
89
|
+
* Must only succeed if the caller still owns the lock.
|
|
90
|
+
*
|
|
91
|
+
* Returns:
|
|
92
|
+
* - true => lock renewed
|
|
93
|
+
* - false => ownership lost or job not active
|
|
94
|
+
*/
|
|
95
|
+
renewLock(jobId: string, lockId: string, lockDuration: number): Promise<boolean>;
|
|
82
96
|
/**
|
|
83
97
|
* Mark a job as successfully completed and release its lock.
|
|
98
|
+
* If lockId is provided, verifies lock ownership before completing.
|
|
84
99
|
*/
|
|
85
|
-
complete(jobId: string): Promise<void>;
|
|
100
|
+
complete(jobId: string, lockId?: string): Promise<void>;
|
|
86
101
|
/**
|
|
87
102
|
* Requeue a failed job for another attempt (retry).
|
|
88
103
|
* Records the failure in `attempts` history.
|
|
89
104
|
* Must NOT create a new job identity.
|
|
105
|
+
* If input.lockId is provided, verifies lock ownership before requeueing.
|
|
90
106
|
*/
|
|
91
107
|
requeue(input: RequeueInput): Promise<void>;
|
|
92
108
|
/**
|
|
93
109
|
* Move a permanently-failed job to the DLQ.
|
|
94
110
|
* Sets status to `'dead'` and records the final failure.
|
|
111
|
+
* If input.lockId is provided, verifies lock ownership before moving to DLQ.
|
|
95
112
|
*/
|
|
96
113
|
moveToDlq(input: MoveToDlqInput): Promise<void>;
|
|
97
114
|
/**
|
|
98
115
|
* Release the lock on a job without changing its status.
|
|
99
116
|
* Used during graceful shutdown when a job cannot complete in time.
|
|
117
|
+
* If lockId is provided, verifies lock ownership before releasing.
|
|
100
118
|
*/
|
|
101
|
-
releaseLock(jobId: string): Promise<void>;
|
|
119
|
+
releaseLock(jobId: string, lockId?: string): Promise<void>;
|
|
102
120
|
/**
|
|
103
121
|
* Recover stalled jobs — jobs that are `active` but whose lock has expired.
|
|
104
122
|
* Returns the list of recovered job IDs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.types.d.ts","sourceRoot":"","sources":["../../src/types/storage.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAM1E,MAAM,WAAW,YAAY,CAAC,QAAQ,GAAG,OAAO;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,QAAQ,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAMD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW,CAAC,QAAQ,GAAG,OAAO;IAC7C,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CACxB;AAMD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,kFAAkF;IAClF,aAAa,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"storage.types.d.ts","sourceRoot":"","sources":["../../src/types/storage.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import type { Job } from "../core/job.js";
|
|
|
8
8
|
* Must resolve to indicate success.
|
|
9
9
|
* Throwing (or rejecting) marks the job as failed for this attempt.
|
|
10
10
|
*/
|
|
11
|
-
export type Processor<TPayload = unknown> = (job: Job<TPayload
|
|
11
|
+
export type Processor<TPayload = unknown> = (job: Job<TPayload>, signal: AbortSignal) => Promise<void>;
|
|
12
12
|
export interface WorkerOptions {
|
|
13
13
|
/**
|
|
14
14
|
* Maximum number of jobs processed concurrently by this worker.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.types.d.ts","sourceRoot":"","sources":["../../src/types/worker.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAM1C;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,QAAQ,GAAG,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"worker.types.d.ts","sourceRoot":"","sources":["../../src/types/worker.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAM1C;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,QAAQ,GAAG,OAAO,IAAI,CAC1C,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,EAClB,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,IAAI,CAAC,CAAC;AAMnB,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,109 +1,110 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "queue-jobs-worker",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Reliable job queue and background worker system for Node.js with retries, concurrency, scheduling, and failure recovery.",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"queue-jobs-worker",
|
|
7
|
-
"queue",
|
|
8
|
-
"job-queue",
|
|
9
|
-
"background-jobs",
|
|
10
|
-
"background-processing",
|
|
11
|
-
"worker",
|
|
12
|
-
"nodejs",
|
|
13
|
-
"retry-jobs",
|
|
14
|
-
"concurrency",
|
|
15
|
-
"scheduling",
|
|
16
|
-
"dlq",
|
|
17
|
-
"dead-letter-queue",
|
|
18
|
-
"redis",
|
|
19
|
-
"postgres",
|
|
20
|
-
"mysql",
|
|
21
|
-
"typescript"
|
|
22
|
-
],
|
|
23
|
-
"homepage": "https://github.com/rafidahmed870/queue-jobs-worker#readme",
|
|
24
|
-
"bugs": {
|
|
25
|
-
"url": "https://github.com/rafidahmed870/queue-jobs-worker/issues"
|
|
26
|
-
},
|
|
27
|
-
"repository": {
|
|
28
|
-
"type": "git",
|
|
29
|
-
"url": "git+https://github.com/rafidahmed870/queue-jobs-worker.git"
|
|
30
|
-
},
|
|
31
|
-
"license": "MIT",
|
|
32
|
-
"author": "Rafid Ahmed",
|
|
33
|
-
"type": "module",
|
|
34
|
-
"main": "./dist/index.cjs",
|
|
35
|
-
"module": "./dist/index.js",
|
|
36
|
-
"types": "./dist/index.d.ts",
|
|
37
|
-
"exports": {
|
|
38
|
-
".": {
|
|
39
|
-
"import": {
|
|
40
|
-
"types": "./dist/index.d.ts",
|
|
41
|
-
"default": "./dist/index.js"
|
|
42
|
-
},
|
|
43
|
-
"require": {
|
|
44
|
-
"types": "./dist/index.d.ts",
|
|
45
|
-
"default": "./dist/index.cjs"
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
"sideEffects": false,
|
|
50
|
-
"files": [
|
|
51
|
-
"dist",
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"lint
|
|
62
|
-
"
|
|
63
|
-
"format
|
|
64
|
-
"
|
|
65
|
-
"test
|
|
66
|
-
"test:
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
"@types/
|
|
95
|
-
"@
|
|
96
|
-
"@typescript-eslint/
|
|
97
|
-
"eslint": "*",
|
|
98
|
-
"eslint
|
|
99
|
-
"eslint-
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
|
|
109
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "queue-jobs-worker",
|
|
3
|
+
"version": "1.0.3",
|
|
4
|
+
"description": "Reliable job queue and background worker system for Node.js with retries, concurrency, scheduling, and failure recovery.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"queue-jobs-worker",
|
|
7
|
+
"queue",
|
|
8
|
+
"job-queue",
|
|
9
|
+
"background-jobs",
|
|
10
|
+
"background-processing",
|
|
11
|
+
"worker",
|
|
12
|
+
"nodejs",
|
|
13
|
+
"retry-jobs",
|
|
14
|
+
"concurrency",
|
|
15
|
+
"scheduling",
|
|
16
|
+
"dlq",
|
|
17
|
+
"dead-letter-queue",
|
|
18
|
+
"redis",
|
|
19
|
+
"postgres",
|
|
20
|
+
"mysql",
|
|
21
|
+
"typescript"
|
|
22
|
+
],
|
|
23
|
+
"homepage": "https://github.com/rafidahmed870/queue-jobs-worker#readme",
|
|
24
|
+
"bugs": {
|
|
25
|
+
"url": "https://github.com/rafidahmed870/queue-jobs-worker/issues"
|
|
26
|
+
},
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "git+https://github.com/rafidahmed870/queue-jobs-worker.git"
|
|
30
|
+
},
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"author": "Rafid Ahmed",
|
|
33
|
+
"type": "module",
|
|
34
|
+
"main": "./dist/index.cjs",
|
|
35
|
+
"module": "./dist/index.js",
|
|
36
|
+
"types": "./dist/index.d.ts",
|
|
37
|
+
"exports": {
|
|
38
|
+
".": {
|
|
39
|
+
"import": {
|
|
40
|
+
"types": "./dist/index.d.ts",
|
|
41
|
+
"default": "./dist/index.js"
|
|
42
|
+
},
|
|
43
|
+
"require": {
|
|
44
|
+
"types": "./dist/index.d.ts",
|
|
45
|
+
"default": "./dist/index.cjs"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"sideEffects": false,
|
|
50
|
+
"files": [
|
|
51
|
+
"dist",
|
|
52
|
+
"assets",
|
|
53
|
+
"README.md",
|
|
54
|
+
"CHANGELOG.md",
|
|
55
|
+
"LICENSE"
|
|
56
|
+
],
|
|
57
|
+
"scripts": {
|
|
58
|
+
"build": "tsup && tsc -p tsconfig.dts.json",
|
|
59
|
+
"dev": "tsup --watch",
|
|
60
|
+
"typecheck": "tsc --noEmit",
|
|
61
|
+
"lint": "eslint .",
|
|
62
|
+
"lint:fix": "eslint . --fix",
|
|
63
|
+
"format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
64
|
+
"format:check": "prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
65
|
+
"test": "vitest run",
|
|
66
|
+
"test:watch": "vitest",
|
|
67
|
+
"test:coverage": "vitest run --coverage",
|
|
68
|
+
"prepublishOnly": "npm run typecheck && npm run build",
|
|
69
|
+
"prepare": "husky"
|
|
70
|
+
},
|
|
71
|
+
"engines": {
|
|
72
|
+
"node": ">=18.0.0"
|
|
73
|
+
},
|
|
74
|
+
"dependencies": {
|
|
75
|
+
"croner": "^10.0.1"
|
|
76
|
+
},
|
|
77
|
+
"peerDependencies": {
|
|
78
|
+
"mysql2": ">=3.0.0",
|
|
79
|
+
"pg": ">=8.0.0",
|
|
80
|
+
"redis": ">=4.0.0"
|
|
81
|
+
},
|
|
82
|
+
"peerDependenciesMeta": {
|
|
83
|
+
"redis": {
|
|
84
|
+
"optional": true
|
|
85
|
+
},
|
|
86
|
+
"pg": {
|
|
87
|
+
"optional": true
|
|
88
|
+
},
|
|
89
|
+
"mysql2": {
|
|
90
|
+
"optional": true
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"devDependencies": {
|
|
94
|
+
"@types/node": "*",
|
|
95
|
+
"@types/pg": "^8.23.1",
|
|
96
|
+
"@typescript-eslint/eslint-plugin": "*",
|
|
97
|
+
"@typescript-eslint/parser": "*",
|
|
98
|
+
"eslint": "*",
|
|
99
|
+
"eslint-config-prettier": "*",
|
|
100
|
+
"eslint-plugin-prettier": "*",
|
|
101
|
+
"husky": "^9.1.7",
|
|
102
|
+
"mysql2": "^3.24.2",
|
|
103
|
+
"pg": "^8.23.0",
|
|
104
|
+
"prettier": "*",
|
|
105
|
+
"redis": "^6.2.1",
|
|
106
|
+
"tsup": "*",
|
|
107
|
+
"typescript": "*",
|
|
108
|
+
"vitest": "*"
|
|
109
|
+
}
|
|
110
|
+
}
|