@tsed/agenda 7.52.0 → 7.54.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/jest.config.js +2 -1
- package/lib/cjs/AgendaModule.js +32 -6
- package/lib/cjs/AgendaModule.js.map +1 -1
- package/lib/esm/AgendaModule.js +33 -7
- package/lib/esm/AgendaModule.js.map +1 -1
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/AgendaModule.d.ts +7 -1
- package/package.json +4 -4
- package/readme.md +93 -4
- package/src/AgendaModule.spec.ts +198 -0
- package/src/AgendaModule.ts +43 -7
package/jest.config.js
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
// https://jestjs.io/docs/en/configuration.html
|
|
3
3
|
|
|
4
4
|
module.exports = {
|
|
5
|
+
roots: ["<rootDir>/src", "<rootDir>/test"],
|
|
5
6
|
...require("@tsed/jest-config"),
|
|
6
7
|
coverageThreshold: {
|
|
7
8
|
global: {
|
|
8
9
|
statements: 100,
|
|
9
|
-
branches:
|
|
10
|
+
branches: 91.48,
|
|
10
11
|
functions: 100,
|
|
11
12
|
lines: 100
|
|
12
13
|
}
|
package/lib/cjs/AgendaModule.js
CHANGED
|
@@ -4,25 +4,28 @@ exports.AgendaModule = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const common_1 = require("@tsed/common");
|
|
6
6
|
const di_1 = require("@tsed/di");
|
|
7
|
+
const uuid_1 = require("uuid");
|
|
7
8
|
const constants_1 = require("./constants/constants");
|
|
8
9
|
const AgendaFactory_1 = require("./services/AgendaFactory");
|
|
9
10
|
let AgendaModule = class AgendaModule {
|
|
10
11
|
logger;
|
|
11
12
|
injector;
|
|
12
13
|
agenda;
|
|
13
|
-
|
|
14
|
+
enabled;
|
|
14
15
|
disableJobProcessing;
|
|
15
16
|
async $afterListen() {
|
|
16
|
-
if (this.
|
|
17
|
+
if (this.enabled) {
|
|
17
18
|
const providers = this.getProviders();
|
|
18
19
|
if (!this.disableJobProcessing) {
|
|
19
20
|
this.logger.info("Agenda add definitions...");
|
|
20
21
|
providers.forEach((provider) => this.addAgendaDefinitionsForProvider(provider));
|
|
22
|
+
await this.injector.emit("$beforeAgendaStart");
|
|
21
23
|
}
|
|
22
24
|
await this.agenda.start();
|
|
23
25
|
if (!this.disableJobProcessing) {
|
|
24
26
|
this.logger.info("Agenda add scheduled jobs...");
|
|
25
27
|
await Promise.all(providers.map((provider) => this.scheduleJobsForProvider(provider)));
|
|
28
|
+
await this.injector.emit("$afterAgendaStart");
|
|
26
29
|
}
|
|
27
30
|
}
|
|
28
31
|
else {
|
|
@@ -30,12 +33,35 @@ let AgendaModule = class AgendaModule {
|
|
|
30
33
|
}
|
|
31
34
|
}
|
|
32
35
|
async $onDestroy() {
|
|
33
|
-
if (this.
|
|
36
|
+
if (this.enabled) {
|
|
34
37
|
await this.agenda.stop();
|
|
35
38
|
await this.agenda.close({ force: true });
|
|
36
39
|
this.logger.info("Agenda stopped...");
|
|
37
40
|
}
|
|
38
41
|
}
|
|
42
|
+
define(name, options, processor) {
|
|
43
|
+
return this.agenda.define(name, options, (job) => {
|
|
44
|
+
const $ctx = new common_1.DIContext({
|
|
45
|
+
injector: this.injector,
|
|
46
|
+
id: (0, uuid_1.v4)(),
|
|
47
|
+
logger: this.injector.logger
|
|
48
|
+
});
|
|
49
|
+
$ctx.set("job", job);
|
|
50
|
+
return (0, common_1.runInContext)($ctx, () => processor(job));
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
every(interval, name, data, options) {
|
|
54
|
+
return this.agenda.every(interval, name, data, options);
|
|
55
|
+
}
|
|
56
|
+
schedule(when, name, data) {
|
|
57
|
+
return this.agenda.schedule(when, name, data);
|
|
58
|
+
}
|
|
59
|
+
now(name, data) {
|
|
60
|
+
return this.agenda.now(name, data);
|
|
61
|
+
}
|
|
62
|
+
create(name, data) {
|
|
63
|
+
return this.agenda.create(name, data);
|
|
64
|
+
}
|
|
39
65
|
getProviders() {
|
|
40
66
|
return this.injector.getProviders(constants_1.PROVIDER_TYPE_AGENDA);
|
|
41
67
|
}
|
|
@@ -48,7 +74,7 @@ let AgendaModule = class AgendaModule {
|
|
|
48
74
|
const instance = this.injector.get(provider.token);
|
|
49
75
|
const jobProcessor = instance[propertyKey].bind(instance);
|
|
50
76
|
const jobName = this.getNameForJob(propertyKey, store.namespace, name);
|
|
51
|
-
this.
|
|
77
|
+
this.define(jobName, options, jobProcessor);
|
|
52
78
|
});
|
|
53
79
|
}
|
|
54
80
|
async scheduleJobsForProvider(provider) {
|
|
@@ -58,7 +84,7 @@ let AgendaModule = class AgendaModule {
|
|
|
58
84
|
}
|
|
59
85
|
const promises = Object.entries(store.every).map(([propertyKey, { interval, name, ...options }]) => {
|
|
60
86
|
const jobName = this.getNameForJob(propertyKey, store.namespace, name);
|
|
61
|
-
return this.
|
|
87
|
+
return this.every(interval, jobName, {}, options);
|
|
62
88
|
});
|
|
63
89
|
await Promise.all(promises);
|
|
64
90
|
}
|
|
@@ -82,7 +108,7 @@ tslib_1.__decorate([
|
|
|
82
108
|
tslib_1.__decorate([
|
|
83
109
|
(0, di_1.Constant)("agenda.enabled", false),
|
|
84
110
|
tslib_1.__metadata("design:type", Boolean)
|
|
85
|
-
], AgendaModule.prototype, "
|
|
111
|
+
], AgendaModule.prototype, "enabled", void 0);
|
|
86
112
|
tslib_1.__decorate([
|
|
87
113
|
(0, di_1.Constant)("agenda.disableJobProcessing", false),
|
|
88
114
|
tslib_1.__metadata("design:type", Boolean)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgendaModule.js","sourceRoot":"","sources":["../../src/AgendaModule.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"AgendaModule.js","sourceRoot":"","sources":["../../src/AgendaModule.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/AgendaModule.js
CHANGED
|
@@ -1,25 +1,28 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Logger } from "@tsed/common";
|
|
2
|
+
import { DIContext, Logger, runInContext } from "@tsed/common";
|
|
3
3
|
import { Constant, Inject, InjectorService, Module } from "@tsed/di";
|
|
4
|
+
import { v4 as uuid } from "uuid";
|
|
4
5
|
import { PROVIDER_TYPE_AGENDA } from "./constants/constants.js";
|
|
5
6
|
import { AgendaService } from "./services/AgendaFactory.js";
|
|
6
7
|
let AgendaModule = class AgendaModule {
|
|
7
8
|
logger;
|
|
8
9
|
injector;
|
|
9
10
|
agenda;
|
|
10
|
-
|
|
11
|
+
enabled;
|
|
11
12
|
disableJobProcessing;
|
|
12
13
|
async $afterListen() {
|
|
13
|
-
if (this.
|
|
14
|
+
if (this.enabled) {
|
|
14
15
|
const providers = this.getProviders();
|
|
15
16
|
if (!this.disableJobProcessing) {
|
|
16
17
|
this.logger.info("Agenda add definitions...");
|
|
17
18
|
providers.forEach((provider) => this.addAgendaDefinitionsForProvider(provider));
|
|
19
|
+
await this.injector.emit("$beforeAgendaStart");
|
|
18
20
|
}
|
|
19
21
|
await this.agenda.start();
|
|
20
22
|
if (!this.disableJobProcessing) {
|
|
21
23
|
this.logger.info("Agenda add scheduled jobs...");
|
|
22
24
|
await Promise.all(providers.map((provider) => this.scheduleJobsForProvider(provider)));
|
|
25
|
+
await this.injector.emit("$afterAgendaStart");
|
|
23
26
|
}
|
|
24
27
|
}
|
|
25
28
|
else {
|
|
@@ -27,12 +30,35 @@ let AgendaModule = class AgendaModule {
|
|
|
27
30
|
}
|
|
28
31
|
}
|
|
29
32
|
async $onDestroy() {
|
|
30
|
-
if (this.
|
|
33
|
+
if (this.enabled) {
|
|
31
34
|
await this.agenda.stop();
|
|
32
35
|
await this.agenda.close({ force: true });
|
|
33
36
|
this.logger.info("Agenda stopped...");
|
|
34
37
|
}
|
|
35
38
|
}
|
|
39
|
+
define(name, options, processor) {
|
|
40
|
+
return this.agenda.define(name, options, (job) => {
|
|
41
|
+
const $ctx = new DIContext({
|
|
42
|
+
injector: this.injector,
|
|
43
|
+
id: uuid(),
|
|
44
|
+
logger: this.injector.logger
|
|
45
|
+
});
|
|
46
|
+
$ctx.set("job", job);
|
|
47
|
+
return runInContext($ctx, () => processor(job));
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
every(interval, name, data, options) {
|
|
51
|
+
return this.agenda.every(interval, name, data, options);
|
|
52
|
+
}
|
|
53
|
+
schedule(when, name, data) {
|
|
54
|
+
return this.agenda.schedule(when, name, data);
|
|
55
|
+
}
|
|
56
|
+
now(name, data) {
|
|
57
|
+
return this.agenda.now(name, data);
|
|
58
|
+
}
|
|
59
|
+
create(name, data) {
|
|
60
|
+
return this.agenda.create(name, data);
|
|
61
|
+
}
|
|
36
62
|
getProviders() {
|
|
37
63
|
return this.injector.getProviders(PROVIDER_TYPE_AGENDA);
|
|
38
64
|
}
|
|
@@ -45,7 +71,7 @@ let AgendaModule = class AgendaModule {
|
|
|
45
71
|
const instance = this.injector.get(provider.token);
|
|
46
72
|
const jobProcessor = instance[propertyKey].bind(instance);
|
|
47
73
|
const jobName = this.getNameForJob(propertyKey, store.namespace, name);
|
|
48
|
-
this.
|
|
74
|
+
this.define(jobName, options, jobProcessor);
|
|
49
75
|
});
|
|
50
76
|
}
|
|
51
77
|
async scheduleJobsForProvider(provider) {
|
|
@@ -55,7 +81,7 @@ let AgendaModule = class AgendaModule {
|
|
|
55
81
|
}
|
|
56
82
|
const promises = Object.entries(store.every).map(([propertyKey, { interval, name, ...options }]) => {
|
|
57
83
|
const jobName = this.getNameForJob(propertyKey, store.namespace, name);
|
|
58
|
-
return this.
|
|
84
|
+
return this.every(interval, jobName, {}, options);
|
|
59
85
|
});
|
|
60
86
|
await Promise.all(promises);
|
|
61
87
|
}
|
|
@@ -79,7 +105,7 @@ __decorate([
|
|
|
79
105
|
__decorate([
|
|
80
106
|
Constant("agenda.enabled", false),
|
|
81
107
|
__metadata("design:type", Boolean)
|
|
82
|
-
], AgendaModule.prototype, "
|
|
108
|
+
], AgendaModule.prototype, "enabled", void 0);
|
|
83
109
|
__decorate([
|
|
84
110
|
Constant("agenda.disableJobProcessing", false),
|
|
85
111
|
__metadata("design:type", Boolean)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgendaModule.js","sourceRoot":"","sources":["../../src/AgendaModule.ts"],"names":[],"mappings":";AAAA,OAAO,EAAc,MAAM,
|
|
1
|
+
{"version":3,"file":"AgendaModule.js","sourceRoot":"","sources":["../../src/AgendaModule.ts"],"names":[],"mappings":"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"}
|