@alanszp/queue 10.0.3 → 10.1.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.
|
@@ -17,6 +17,7 @@ class ConnectionManager {
|
|
|
17
17
|
throw new Error("Redis configuration required");
|
|
18
18
|
}
|
|
19
19
|
const redis = new ioredis_1.default(this.redisConfiguration);
|
|
20
|
+
redis.setMaxListeners(20);
|
|
20
21
|
redis.on("connect", () => this.getLogger().info("redis.connected"));
|
|
21
22
|
redis.on("ready", () => this.getLogger().info("redis.ready"));
|
|
22
23
|
redis.on("error", (error) => this.getLogger().error("redis.error", { error }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectionManager.js","sourceRoot":"","sources":["../src/connectionManager.ts"],"names":[],"mappings":";;;;;;AACA,sDAA8C;AAE9C,MAAa,iBAAiB;IAWrB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;YAC/B,iBAAiB,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;SACtD;QAED,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IACpC,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SACjD;QAED,MAAM,KAAK,GAAG,IAAI,iBAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjD,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACpE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAC9D,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"connectionManager.js","sourceRoot":"","sources":["../src/connectionManager.ts"],"names":[],"mappings":";;;;;;AACA,sDAA8C;AAE9C,MAAa,iBAAiB;IAWrB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;YAC/B,iBAAiB,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;SACtD;QAED,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IACpC,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SACjD;QAED,MAAM,KAAK,GAAG,IAAI,iBAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjD,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACpE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAC9D,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE,CACjC,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,CACjD,CAAC;QACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/D,KAAK,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC5E,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QAC5D,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QAE/D,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,gBAAgB,CACrB,aAA2B,EAC3B,OAAe,EACf,SAAwB;QAExB,IAAI,CAAC,kBAAkB,GAAG,aAAa,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEM,aAAa;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;SAClC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;IAC/B,CAAC;CACF;AAhED,8CAgEC"}
|
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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alanszp/queue",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.1.1",
|
|
4
4
|
"description": "Workers and queues",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"ioredis": "^5.2.3",
|
|
37
37
|
"lodash": "^4.17.21"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "8bb5a2b1558132f5bb087192a783f454ec23347a"
|
|
40
40
|
}
|
package/src/connectionManager.ts
CHANGED
|
@@ -26,9 +26,12 @@ export class ConnectionManager {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
const redis = new Redis(this.redisConfiguration);
|
|
29
|
+
redis.setMaxListeners(20);
|
|
29
30
|
redis.on("connect", () => this.getLogger().info("redis.connected"));
|
|
30
31
|
redis.on("ready", () => this.getLogger().info("redis.ready"));
|
|
31
|
-
redis.on("error", (error: Error) =>
|
|
32
|
+
redis.on("error", (error: Error) =>
|
|
33
|
+
this.getLogger().error("redis.error", { error })
|
|
34
|
+
);
|
|
32
35
|
redis.on("close", () => this.getLogger().warn("redis.closed"));
|
|
33
36
|
redis.on("reconnecting", () => this.getLogger().info("redis.reconnecting"));
|
|
34
37
|
redis.on("end", () => this.getLogger().info("redis.ended"));
|
|
@@ -37,7 +40,11 @@ export class ConnectionManager {
|
|
|
37
40
|
return redis;
|
|
38
41
|
}
|
|
39
42
|
|
|
40
|
-
public setConfiguration(
|
|
43
|
+
public setConfiguration(
|
|
44
|
+
configuration: RedisOptions,
|
|
45
|
+
service: string,
|
|
46
|
+
getLogger: () => ILogger
|
|
47
|
+
) {
|
|
41
48
|
this.redisConfiguration = configuration;
|
|
42
49
|
this.serviceName = service;
|
|
43
50
|
this.getLogger = getLogger;
|
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);
|