@memberjunction/scheduling-engine-base 5.51.0 → 5.51.2
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.
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @fileoverview Base scheduling engine with metadata caching
|
|
3
3
|
* @module @memberjunction/scheduling-engine-base
|
|
4
4
|
*/
|
|
5
|
-
import { BaseEngine, BaseEntityEvent, IMetadataProvider, UserInfo } from '@memberjunction/core';
|
|
5
|
+
import { BaseEngine, BaseEnginePropertyConfig, BaseEntityEvent, CacheChangedEvent, IMetadataProvider, UserInfo } from '@memberjunction/core';
|
|
6
6
|
import { MJScheduledJobEntity, MJScheduledJobTypeEntity, MJScheduledJobRunEntity } from '@memberjunction/core-entities';
|
|
7
7
|
import { Observable } from 'rxjs';
|
|
8
8
|
/**
|
|
@@ -112,6 +112,16 @@ export declare class SchedulingEngineBase extends BaseEngine<SchedulingEngineBas
|
|
|
112
112
|
* shape (carries an `entityName` string).
|
|
113
113
|
*/
|
|
114
114
|
private isScheduledJobsEvent;
|
|
115
|
+
/**
|
|
116
|
+
* Extend the base cross-server cache-event handling the same way as
|
|
117
|
+
* {@link HandleIndividualBaseEntityEvent}: the `MJ: Scheduled Jobs` config is loaded
|
|
118
|
+
* unfiltered (so its cache payloads carry every row), and the Active-only invariant on
|
|
119
|
+
* {@link ScheduledJobs} is applied in memory after load. The base handler assigns the
|
|
120
|
+
* payload — or the full-reload fallback's rows — wholesale, so without this re-filter a
|
|
121
|
+
* cache event published by another server would put Disabled/Paused/Pending jobs back
|
|
122
|
+
* into the array that dispatch walks.
|
|
123
|
+
*/
|
|
124
|
+
protected OnExternalCacheChange(config: BaseEnginePropertyConfig, event: CacheChangedEvent): Promise<void>;
|
|
115
125
|
/**
|
|
116
126
|
* Get singleton instance
|
|
117
127
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchedulingEngineBase.d.ts","sourceRoot":"","sources":["../src/SchedulingEngineBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"SchedulingEngineBase.d.ts","sourceRoot":"","sources":["../src/SchedulingEngineBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC7I,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExH,OAAO,EAAE,UAAU,EAAW,MAAM,MAAM,CAAC;AAE3C;;;;;;;;;;GAUG;AACH,qBAAa,oBAAqB,SAAQ,UAAU,CAAC,oBAAoB,CAAC;IACtE,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,sBAAsB,CAAwB;IAEtD;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY,CAAuB;IAE3C;;;;;;;;OAQG;IACU,MAAM,CACf,YAAY,CAAC,EAAE,OAAO,EACtB,WAAW,CAAC,EAAE,QAAQ,EACtB,QAAQ,CAAC,EAAE,iBAAiB,EAC5B,WAAW,GAAE,OAAe,EAC5B,cAAc,GAAE,OAAe,GAChC,OAAO,CAAC,OAAO,CAAC;IAuCnB;;OAEG;IACH,IAAW,iBAAiB,IAAI,wBAAwB,EAAE,CAEzD;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,oBAAoB,EAAE,CAEjD;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,uBAAuB,EAAE,CAEvD;IAED;;OAEG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS;IAI3E;;OAEG;IACI,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS;IAIzF;;OAEG;IACI,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,EAAE;IAI/D;;OAEG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,uBAAuB,EAAE;IAI9D;;;OAGG;IACH,IAAW,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAEhD;IAED;;;OAGG;IACI,qBAAqB,IAAI,IAAI;IAgCpC;;;;OAIG;IACH,IAAW,YAAY,IAAI,UAAU,CAAC,IAAI,CAAC,CAE1C;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;IAI9B;;;;;;;;;;OAUG;cACsB,+BAA+B,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAWlG;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;;;;;;OAQG;cACsB,qBAAqB,CAAC,MAAM,EAAE,wBAAwB,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IASzH;;OAEG;IACH,WAAkB,QAAQ,IAAI,oBAAoB,CAEjD;CACJ"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @module @memberjunction/scheduling-engine-base
|
|
4
4
|
*/
|
|
5
5
|
import { BaseEngine } from '@memberjunction/core';
|
|
6
|
-
import { UUIDsEqual } from '@memberjunction/global';
|
|
6
|
+
import { ToEpochMs, UUIDsEqual } from '@memberjunction/global';
|
|
7
7
|
import { Subject } from 'rxjs';
|
|
8
8
|
/**
|
|
9
9
|
* Base engine for scheduling system with metadata caching
|
|
@@ -142,7 +142,7 @@ export class SchedulingEngineBase extends BaseEngine {
|
|
|
142
142
|
if (job.Status !== 'Active' || !job.NextRunAt) {
|
|
143
143
|
continue;
|
|
144
144
|
}
|
|
145
|
-
const timeUntilNext = Math.max(0, job.NextRunAt
|
|
145
|
+
const timeUntilNext = Math.max(0, ToEpochMs(job.NextRunAt) - now);
|
|
146
146
|
if (timeUntilNext < minInterval) {
|
|
147
147
|
minInterval = timeUntilNext;
|
|
148
148
|
}
|
|
@@ -207,6 +207,22 @@ export class SchedulingEngineBase extends BaseEngine {
|
|
|
207
207
|
: event.baseEntity?.EntityInfo?.Name;
|
|
208
208
|
return name?.toLowerCase().trim() === target;
|
|
209
209
|
}
|
|
210
|
+
/**
|
|
211
|
+
* Extend the base cross-server cache-event handling the same way as
|
|
212
|
+
* {@link HandleIndividualBaseEntityEvent}: the `MJ: Scheduled Jobs` config is loaded
|
|
213
|
+
* unfiltered (so its cache payloads carry every row), and the Active-only invariant on
|
|
214
|
+
* {@link ScheduledJobs} is applied in memory after load. The base handler assigns the
|
|
215
|
+
* payload — or the full-reload fallback's rows — wholesale, so without this re-filter a
|
|
216
|
+
* cache event published by another server would put Disabled/Paused/Pending jobs back
|
|
217
|
+
* into the array that dispatch walks.
|
|
218
|
+
*/
|
|
219
|
+
async OnExternalCacheChange(config, event) {
|
|
220
|
+
await super.OnExternalCacheChange(config, event);
|
|
221
|
+
if (config.EntityName?.toLowerCase().trim() === 'mj: scheduled jobs') {
|
|
222
|
+
this.reapplyActiveJobFilter();
|
|
223
|
+
this._jobsChanged.next();
|
|
224
|
+
}
|
|
225
|
+
}
|
|
210
226
|
/**
|
|
211
227
|
* Get singleton instance
|
|
212
228
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchedulingEngineBase.js","sourceRoot":"","sources":["../src/SchedulingEngineBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"SchedulingEngineBase.js","sourceRoot":"","sources":["../src/SchedulingEngineBase.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/scheduling-engine-base",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.51.
|
|
4
|
+
"version": "5.51.2",
|
|
5
5
|
"description": "MemberJunction: Base Scheduling Engine Package - extended entity types and metadata caching, can be used anywhere.",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
"author": "MemberJunction.com",
|
|
17
17
|
"license": "ISC",
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@memberjunction/core": "5.51.
|
|
20
|
-
"@memberjunction/global": "5.51.
|
|
21
|
-
"@memberjunction/core-entities": "5.51.
|
|
22
|
-
"@memberjunction/scheduling-base-types": "5.51.
|
|
19
|
+
"@memberjunction/core": "5.51.2",
|
|
20
|
+
"@memberjunction/global": "5.51.2",
|
|
21
|
+
"@memberjunction/core-entities": "5.51.2",
|
|
22
|
+
"@memberjunction/scheduling-base-types": "5.51.2",
|
|
23
23
|
"rxjs": "^7.8.2"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|