@alanszp/queue 10.0.2 → 10.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/queue/queue.d.ts +4 -1
- package/dist/queue/queue.js +15 -0
- package/dist/queue/queue.js.map +1 -1
- package/dist/wrappers/withContext.js +3 -6
- package/dist/wrappers/withContext.js.map +1 -1
- package/package.json +3 -2
- package/src/queue/queue.ts +21 -2
- package/src/wrappers/withContext.ts +3 -3
package/dist/queue/queue.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Job, JobsOptions } from "bullmq";
|
|
1
|
+
import { Job, JobsOptions, RepeatOptions } from "bullmq";
|
|
2
2
|
import { ListResult } from "@alanszp/core";
|
|
3
3
|
import { SharedContext } from "@alanszp/shared-context";
|
|
4
4
|
import { ConnectionOptions, JobData, JobReturnValue, JobTypeEnum, QueueOptions } from "../types";
|
|
@@ -9,6 +9,9 @@ export declare class Queue<Data = JobData, ReturnValue = JobReturnValue> {
|
|
|
9
9
|
constructor(connection: ConnectionOptions, name: string, prefix: string, getSharedContext: () => SharedContext, queueOptions?: QueueOptions);
|
|
10
10
|
getName(): string;
|
|
11
11
|
publishJob(job: Data, opts?: JobsOptions): Promise<Job<Data, ReturnValue>>;
|
|
12
|
+
publishRepeatableJob(job: Data, repeatOptions: RepeatOptions, jobId: string): Promise<Job<Data, ReturnValue>>;
|
|
13
|
+
removeRepeatableJobByKey(repeatJobKey: string): Promise<boolean>;
|
|
14
|
+
removeRepeatableJobByConfig(repeatOptions: RepeatOptions, jobId: string): Promise<boolean>;
|
|
12
15
|
publishBulkJob(jobDatas: Data[]): Promise<Job<Data, ReturnValue>[]>;
|
|
13
16
|
publishBulkJobWithOptions(jobDefinitions: {
|
|
14
17
|
jobData: Data;
|
package/dist/queue/queue.js
CHANGED
|
@@ -51,6 +51,21 @@ class Queue {
|
|
|
51
51
|
return this.queue.add(this.name, Object.assign(Object.assign({}, job), { lid, lch }), opts);
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
+
publishRepeatableJob(job, repeatOptions, jobId) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
return this.queue.add(this.name, job, Object.assign(Object.assign({}, repeatOptions), { jobId }));
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
removeRepeatableJobByKey(repeatJobKey) {
|
|
60
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
return this.queue.removeRepeatableByKey(repeatJobKey);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
removeRepeatableJobByConfig(repeatOptions, jobId) {
|
|
65
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
return this.queue.removeRepeatable(this.name, repeatOptions, jobId);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
54
69
|
publishBulkJob(jobDatas) {
|
|
55
70
|
return __awaiter(this, void 0, void 0, function* () {
|
|
56
71
|
const jobs = jobDatas.map((data) => ({ name: this.name, data }));
|
package/dist/queue/queue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/queue/queue.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/queue/queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,12 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
12
|
exports.withContext = void 0;
|
|
16
|
-
const
|
|
13
|
+
const cuid2_1 = require("@paralleldrive/cuid2");
|
|
17
14
|
const appIdentifier_1 = require("../helpers/appIdentifier");
|
|
18
15
|
const lodash_1 = require("lodash");
|
|
19
16
|
function withContext(queueName, workerContext, executor) {
|
|
@@ -24,9 +21,9 @@ function withContext(queueName, workerContext, executor) {
|
|
|
24
21
|
}), {
|
|
25
22
|
logger: workerContext.baseLogger,
|
|
26
23
|
audit: workerContext.audit.withState(),
|
|
27
|
-
lifecycleId: lid || (0,
|
|
24
|
+
lifecycleId: lid || (0, cuid2_1.createId)(),
|
|
28
25
|
lifecycleChain: (0, lodash_1.compact)([lch, `wkr:${queueName}`]).join(",") || (0, appIdentifier_1.appIdentifier)(),
|
|
29
|
-
contextId: (0,
|
|
26
|
+
contextId: (0, cuid2_1.createId)(),
|
|
30
27
|
});
|
|
31
28
|
};
|
|
32
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withContext.js","sourceRoot":"","sources":["../../src/wrappers/withContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"withContext.js","sourceRoot":"","sources":["../../src/wrappers/withContext.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAAgD;AAChD,4DAAyD;AAIzD,mCAAiC;AAEjC,SAAgB,WAAW,CACzB,SAAiB,EACjB,aAA4B,EAC5B,QAA+C;IAE/C,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,IAAsC,CAAC;QAChE,OAAO,aAAa,CAAC,aAAa,CAAC,GAAG,CACpC,GAAS,EAAE;YACT,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC,CAAA,EACD;YACE,MAAM,EAAE,aAAa,CAAC,UAAU;YAChC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE;YACtC,WAAW,EAAE,GAAG,IAAI,IAAA,gBAAQ,GAAE;YAC9B,cAAc,EACZ,IAAA,gBAAO,EAAC,CAAC,GAAG,EAAE,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAA,6BAAa,GAAE;YACjE,SAAS,EAAE,IAAA,gBAAQ,GAAE;SACtB,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AArBD,kCAqBC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alanszp/queue",
|
|
3
|
-
"version": "10.0
|
|
3
|
+
"version": "10.1.0",
|
|
4
4
|
"description": "Workers and queues",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -31,9 +31,10 @@
|
|
|
31
31
|
"@alanszp/logger": "^10.0.1",
|
|
32
32
|
"@alanszp/shared-context": "^10.0.2",
|
|
33
33
|
"@alanszp/validations": "^10.0.1",
|
|
34
|
+
"@paralleldrive/cuid2": "^2.2.2",
|
|
34
35
|
"bullmq": "^2.1.2",
|
|
35
36
|
"ioredis": "^5.2.3",
|
|
36
37
|
"lodash": "^4.17.21"
|
|
37
38
|
},
|
|
38
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "90cfaf6efee356f6e3f17cbc156638aaecd5e0dc"
|
|
39
40
|
}
|
package/src/queue/queue.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { merge } from "lodash";
|
|
2
|
-
import { Job, JobsOptions } from "bullmq";
|
|
1
|
+
import { merge, repeat } from "lodash";
|
|
2
|
+
import { Job, JobsOptions, RepeatOptions } from "bullmq";
|
|
3
3
|
import { ListResult } from "@alanszp/core";
|
|
4
4
|
import { SharedContext } from "@alanszp/shared-context";
|
|
5
5
|
import {
|
|
@@ -78,6 +78,25 @@ export class Queue<Data = JobData, ReturnValue = JobReturnValue> {
|
|
|
78
78
|
return this.queue.add(this.name, { ...job, lid, lch }, opts);
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
+
async publishRepeatableJob(
|
|
82
|
+
job: Data,
|
|
83
|
+
repeatOptions: RepeatOptions,
|
|
84
|
+
jobId: string
|
|
85
|
+
): Promise<Job<Data, ReturnValue>> {
|
|
86
|
+
return this.queue.add(this.name, job, { ...repeatOptions, jobId });
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
async removeRepeatableJobByKey(repeatJobKey: string): Promise<boolean> {
|
|
90
|
+
return this.queue.removeRepeatableByKey(repeatJobKey);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
async removeRepeatableJobByConfig(
|
|
94
|
+
repeatOptions: RepeatOptions,
|
|
95
|
+
jobId: string
|
|
96
|
+
): Promise<boolean> {
|
|
97
|
+
return this.queue.removeRepeatable(this.name, repeatOptions, jobId);
|
|
98
|
+
}
|
|
99
|
+
|
|
81
100
|
async publishBulkJob(jobDatas: Data[]): Promise<Job<Data, ReturnValue>[]> {
|
|
82
101
|
const jobs = jobDatas.map((data) => ({ name: this.name, data }));
|
|
83
102
|
return this.queue.addBulk(jobs);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { createId } from "@paralleldrive/cuid2";
|
|
2
2
|
import { appIdentifier } from "../helpers/appIdentifier";
|
|
3
3
|
import { Job, JobData } from "bullmq";
|
|
4
4
|
import { WorkerContext } from "../worker/worker";
|
|
@@ -19,10 +19,10 @@ export function withContext<T = JobData, ReturnValue = JobReturnValue>(
|
|
|
19
19
|
{
|
|
20
20
|
logger: workerContext.baseLogger,
|
|
21
21
|
audit: workerContext.audit.withState(),
|
|
22
|
-
lifecycleId: lid ||
|
|
22
|
+
lifecycleId: lid || createId(),
|
|
23
23
|
lifecycleChain:
|
|
24
24
|
compact([lch, `wkr:${queueName}`]).join(",") || appIdentifier(),
|
|
25
|
-
contextId:
|
|
25
|
+
contextId: createId(),
|
|
26
26
|
}
|
|
27
27
|
);
|
|
28
28
|
};
|