@sidequest/engine 1.7.1 → 1.8.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/job/constants.cjs +2 -0
- package/dist/job/constants.cjs.map +1 -1
- package/dist/job/constants.js +2 -0
- package/dist/job/constants.js.map +1 -1
- package/dist/job/job-builder.cjs +30 -0
- package/dist/job/job-builder.cjs.map +1 -1
- package/dist/job/job-builder.d.ts +25 -1
- package/dist/job/job-builder.js +30 -0
- package/dist/job/job-builder.js.map +1 -1
- package/package.json +4 -4
package/dist/job/constants.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.cjs","sources":["../../src/job/constants.ts"],"sourcesContent":[null],"names":["JOB_FALLBACK"],"mappings":";;;;AAGA;;;;;;;;;;;;AAYG;AACI,MAAM,oBAAoB,GAAwD;AACvF,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,UAAU,EAAE,KAAK;IACjB,WAAW,EAAEA,oBAAY,CAAC,YAAY;AACtC,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,IAAI,EAAE;IACnB,CAAC;AACD,IAAA,eAAe,EAAE,EAAE;;;;;"}
|
|
1
|
+
{"version":3,"file":"constants.cjs","sources":["../../src/job/constants.ts"],"sourcesContent":[null],"names":["JOB_FALLBACK"],"mappings":";;;;AAGA;;;;;;;;;;;;AAYG;AACI,MAAM,oBAAoB,GAAwD;AACvF,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,UAAU,EAAE,KAAK;IACjB,WAAW,EAAEA,oBAAY,CAAC,YAAY;AACtC,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,IAAI,EAAE;IACnB,CAAC;AACD,IAAA,eAAe,EAAE,EAAE;AACnB,IAAA,UAAU,EAAE,IAAI;IAChB,eAAe,EAAEA,oBAAY,CAAC,gBAAgB;;;;;"}
|
package/dist/job/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../src/job/constants.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;;;;;;;;;;;AAYG;AACI,MAAM,oBAAoB,GAAwD;AACvF,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,YAAY,CAAC,YAAY;AACtC,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,IAAI,EAAE;IACnB,CAAC;AACD,IAAA,eAAe,EAAE,EAAE;;;;;"}
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../src/job/constants.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;;;;;;;;;;;AAYG;AACI,MAAM,oBAAoB,GAAwD;AACvF,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,YAAY,CAAC,YAAY;AACtC,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,IAAI,EAAE;IACnB,CAAC;AACD,IAAA,eAAe,EAAE,EAAE;AACnB,IAAA,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,YAAY,CAAC,gBAAgB;;;;;"}
|
package/dist/job/job-builder.cjs
CHANGED
|
@@ -24,6 +24,8 @@ class JobBuilder {
|
|
|
24
24
|
uniquenessConfig;
|
|
25
25
|
jobMaxAttempts;
|
|
26
26
|
jobAvailableAt;
|
|
27
|
+
jobRetryDelay;
|
|
28
|
+
jobBackoffStrategy;
|
|
27
29
|
/**
|
|
28
30
|
* Creates a new JobBuilder for the given job class.
|
|
29
31
|
* @param JobClass The job class constructor.
|
|
@@ -39,6 +41,8 @@ class JobBuilder {
|
|
|
39
41
|
this.timeout(this.defaults?.timeout ?? constants.JOB_BUILDER_FALLBACK.timeout);
|
|
40
42
|
this.unique(this.defaults?.uniqueness ?? constants.JOB_BUILDER_FALLBACK.uniqueness);
|
|
41
43
|
this.with(...constants.JOB_BUILDER_FALLBACK.constructorArgs);
|
|
44
|
+
this.retryDelay(this.defaults?.retryDelay ?? constants.JOB_BUILDER_FALLBACK.retryDelay);
|
|
45
|
+
this.backoffStrategy(this.defaults?.backoffStrategy ?? constants.JOB_BUILDER_FALLBACK.backoffStrategy);
|
|
42
46
|
}
|
|
43
47
|
/**
|
|
44
48
|
* Sets the constructor arguments for the job.
|
|
@@ -122,6 +126,30 @@ class JobBuilder {
|
|
|
122
126
|
this.jobAvailableAt = value;
|
|
123
127
|
return this;
|
|
124
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Delay before retrying a failed job, in milliseconds.
|
|
131
|
+
*
|
|
132
|
+
* If "backoff_strategy" is "exponential", this value is used as the base delay for calculating exponential backoff.
|
|
133
|
+
*
|
|
134
|
+
* @param value The retry delay in milliseconds.
|
|
135
|
+
* @returns This builder instance.
|
|
136
|
+
*/
|
|
137
|
+
retryDelay(value) {
|
|
138
|
+
this.jobRetryDelay = value;
|
|
139
|
+
return this;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Strategy used for calculating backoff delays between retries.
|
|
143
|
+
* - "exponential": Delays increase exponentially with each attempt.
|
|
144
|
+
* - "fixed": Delays remain constant for each attempt.
|
|
145
|
+
*
|
|
146
|
+
* @param value The backoff strategy.
|
|
147
|
+
* @returns This builder instance.
|
|
148
|
+
*/
|
|
149
|
+
backoffStrategy(value) {
|
|
150
|
+
this.jobBackoffStrategy = value;
|
|
151
|
+
return this;
|
|
152
|
+
}
|
|
125
153
|
async build(...args) {
|
|
126
154
|
const job = new this.JobClass(...this.constructorArgs);
|
|
127
155
|
if (!this.manualJobResolution) {
|
|
@@ -149,6 +177,8 @@ class JobBuilder {
|
|
|
149
177
|
available_at: this.jobAvailableAt,
|
|
150
178
|
timeout: this.jobTimeout,
|
|
151
179
|
uniqueness_config: this.uniquenessConfig,
|
|
180
|
+
retry_delay: this.jobRetryDelay,
|
|
181
|
+
backoff_strategy: this.jobBackoffStrategy,
|
|
152
182
|
};
|
|
153
183
|
if (this.uniquenessConfig) {
|
|
154
184
|
const uniqueness = core.UniquenessFactory.create(this.uniquenessConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-builder.cjs","sources":["../../src/job/job-builder.ts"],"sourcesContent":[null],"names":["JOB_BUILDER_FALLBACK","MANUAL_SCRIPT_TAG","UniquenessFactory","logger","inspect","ScheduledJobRegistry"],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"job-builder.cjs","sources":["../../src/job/job-builder.ts"],"sourcesContent":[null],"names":["JOB_BUILDER_FALLBACK","MANUAL_SCRIPT_TAG","UniquenessFactory","logger","inspect","ScheduledJobRegistry"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Backend, NewJobData } from '@sidequest/backend';
|
|
2
|
-
import { TimePeriod, JobClassType, UniquenessConfig, JobData } from '@sidequest/core';
|
|
2
|
+
import { TimePeriod, BackoffStrategy, JobClassType, UniquenessConfig, JobData } from '@sidequest/core';
|
|
3
3
|
import { ScheduledTask } from 'node-cron';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -42,6 +42,10 @@ interface JobBuilderDefaults {
|
|
|
42
42
|
maxAttempts?: number;
|
|
43
43
|
/** Default available at date for jobs built with the JobBuilder */
|
|
44
44
|
availableAt?: Date;
|
|
45
|
+
/** Default retry delay in milliseconds for jobs built with the JobBuilder */
|
|
46
|
+
retryDelay?: number;
|
|
47
|
+
/** Default backoff strategy for jobs built with the JobBuilder */
|
|
48
|
+
backoffStrategy?: BackoffStrategy;
|
|
45
49
|
}
|
|
46
50
|
/**
|
|
47
51
|
* Builder for creating and enqueuing jobs with custom configuration.
|
|
@@ -58,6 +62,8 @@ declare class JobBuilder<T extends JobClassType> {
|
|
|
58
62
|
protected uniquenessConfig?: UniquenessConfig;
|
|
59
63
|
protected jobMaxAttempts?: number;
|
|
60
64
|
protected jobAvailableAt?: Date;
|
|
65
|
+
protected jobRetryDelay?: number;
|
|
66
|
+
protected jobBackoffStrategy?: BackoffStrategy;
|
|
61
67
|
/**
|
|
62
68
|
* Creates a new JobBuilder for the given job class.
|
|
63
69
|
* @param JobClass The job class constructor.
|
|
@@ -104,6 +110,24 @@ declare class JobBuilder<T extends JobClassType> {
|
|
|
104
110
|
* @returns This builder instance.
|
|
105
111
|
*/
|
|
106
112
|
availableAt(value: Date): this;
|
|
113
|
+
/**
|
|
114
|
+
* Delay before retrying a failed job, in milliseconds.
|
|
115
|
+
*
|
|
116
|
+
* If "backoff_strategy" is "exponential", this value is used as the base delay for calculating exponential backoff.
|
|
117
|
+
*
|
|
118
|
+
* @param value The retry delay in milliseconds.
|
|
119
|
+
* @returns This builder instance.
|
|
120
|
+
*/
|
|
121
|
+
retryDelay(value: number): this;
|
|
122
|
+
/**
|
|
123
|
+
* Strategy used for calculating backoff delays between retries.
|
|
124
|
+
* - "exponential": Delays increase exponentially with each attempt.
|
|
125
|
+
* - "fixed": Delays remain constant for each attempt.
|
|
126
|
+
*
|
|
127
|
+
* @param value The backoff strategy.
|
|
128
|
+
* @returns This builder instance.
|
|
129
|
+
*/
|
|
130
|
+
backoffStrategy(value: BackoffStrategy): this;
|
|
107
131
|
protected build(...args: Parameters<InstanceType<T>["run"]>): Promise<NewJobData>;
|
|
108
132
|
/**
|
|
109
133
|
* Enqueues the job with the specified arguments.
|
package/dist/job/job-builder.js
CHANGED
|
@@ -22,6 +22,8 @@ class JobBuilder {
|
|
|
22
22
|
uniquenessConfig;
|
|
23
23
|
jobMaxAttempts;
|
|
24
24
|
jobAvailableAt;
|
|
25
|
+
jobRetryDelay;
|
|
26
|
+
jobBackoffStrategy;
|
|
25
27
|
/**
|
|
26
28
|
* Creates a new JobBuilder for the given job class.
|
|
27
29
|
* @param JobClass The job class constructor.
|
|
@@ -37,6 +39,8 @@ class JobBuilder {
|
|
|
37
39
|
this.timeout(this.defaults?.timeout ?? JOB_BUILDER_FALLBACK.timeout);
|
|
38
40
|
this.unique(this.defaults?.uniqueness ?? JOB_BUILDER_FALLBACK.uniqueness);
|
|
39
41
|
this.with(...JOB_BUILDER_FALLBACK.constructorArgs);
|
|
42
|
+
this.retryDelay(this.defaults?.retryDelay ?? JOB_BUILDER_FALLBACK.retryDelay);
|
|
43
|
+
this.backoffStrategy(this.defaults?.backoffStrategy ?? JOB_BUILDER_FALLBACK.backoffStrategy);
|
|
40
44
|
}
|
|
41
45
|
/**
|
|
42
46
|
* Sets the constructor arguments for the job.
|
|
@@ -120,6 +124,30 @@ class JobBuilder {
|
|
|
120
124
|
this.jobAvailableAt = value;
|
|
121
125
|
return this;
|
|
122
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Delay before retrying a failed job, in milliseconds.
|
|
129
|
+
*
|
|
130
|
+
* If "backoff_strategy" is "exponential", this value is used as the base delay for calculating exponential backoff.
|
|
131
|
+
*
|
|
132
|
+
* @param value The retry delay in milliseconds.
|
|
133
|
+
* @returns This builder instance.
|
|
134
|
+
*/
|
|
135
|
+
retryDelay(value) {
|
|
136
|
+
this.jobRetryDelay = value;
|
|
137
|
+
return this;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Strategy used for calculating backoff delays between retries.
|
|
141
|
+
* - "exponential": Delays increase exponentially with each attempt.
|
|
142
|
+
* - "fixed": Delays remain constant for each attempt.
|
|
143
|
+
*
|
|
144
|
+
* @param value The backoff strategy.
|
|
145
|
+
* @returns This builder instance.
|
|
146
|
+
*/
|
|
147
|
+
backoffStrategy(value) {
|
|
148
|
+
this.jobBackoffStrategy = value;
|
|
149
|
+
return this;
|
|
150
|
+
}
|
|
123
151
|
async build(...args) {
|
|
124
152
|
const job = new this.JobClass(...this.constructorArgs);
|
|
125
153
|
if (!this.manualJobResolution) {
|
|
@@ -147,6 +175,8 @@ class JobBuilder {
|
|
|
147
175
|
available_at: this.jobAvailableAt,
|
|
148
176
|
timeout: this.jobTimeout,
|
|
149
177
|
uniqueness_config: this.uniquenessConfig,
|
|
178
|
+
retry_delay: this.jobRetryDelay,
|
|
179
|
+
backoff_strategy: this.jobBackoffStrategy,
|
|
150
180
|
};
|
|
151
181
|
if (this.uniquenessConfig) {
|
|
152
182
|
const uniqueness = UniquenessFactory.create(this.uniquenessConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-builder.js","sources":["../../src/job/job-builder.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"job-builder.js","sources":["../../src/job/job-builder.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sidequest/engine",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "@sidequest/engine is the core engine of SideQuest, a distributed background job processing system for Node.js and TypeScript.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nodejs",
|
|
@@ -42,12 +42,12 @@
|
|
|
42
42
|
},
|
|
43
43
|
"license": "LGPL-3.0-or-later",
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@sidequest/backend": "1.
|
|
46
|
-
"@sidequest/core": "1.
|
|
45
|
+
"@sidequest/backend": "1.8.0",
|
|
46
|
+
"@sidequest/core": "1.8.0",
|
|
47
47
|
"node-cron": "^4.2.1",
|
|
48
48
|
"piscina": "^5.1.3"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"sidequest": "1.
|
|
51
|
+
"sidequest": "1.8.0"
|
|
52
52
|
}
|
|
53
53
|
}
|