@memberjunction/scheduling-engine-base 5.44.0 → 5.45.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.
@@ -2,8 +2,9 @@
2
2
  * @fileoverview Base scheduling engine with metadata caching
3
3
  * @module @memberjunction/scheduling-engine-base
4
4
  */
5
- import { BaseEngine, IMetadataProvider, UserInfo } from '@memberjunction/core';
5
+ import { BaseEngine, BaseEntityEvent, IMetadataProvider, UserInfo } from '@memberjunction/core';
6
6
  import { MJScheduledJobEntity, MJScheduledJobTypeEntity, MJScheduledJobRunEntity } from '@memberjunction/core-entities';
7
+ import { Observable } from 'rxjs';
7
8
  /**
8
9
  * Base engine for scheduling system with metadata caching
9
10
  *
@@ -20,6 +21,16 @@ export declare class SchedulingEngineBase extends BaseEngine<SchedulingEngineBas
20
21
  private _scheduledJobs;
21
22
  private _scheduledJobRuns;
22
23
  private _activePollingInterval;
24
+ /**
25
+ * Fires whenever the set of active scheduled jobs changes (a job saved, deleted,
26
+ * or invalidated from another server). Emitted AFTER the Active-only filter has been
27
+ * re-applied to {@link ScheduledJobs}, so subscribers always observe a reconciled set.
28
+ *
29
+ * The server-side execution engine subscribes to this to wake a suspended poll timer
30
+ * when a job is activated after boot. No-op on the client (no subscribers).
31
+ * @see MJScheduledJobEntityExtended
32
+ */
33
+ private _jobsChanged;
23
34
  /**
24
35
  * Configure the engine by loading metadata
25
36
  *
@@ -68,6 +79,39 @@ export declare class SchedulingEngineBase extends BaseEngine<SchedulingEngineBas
68
79
  * This should be called whenever jobs are added, modified, or deleted
69
80
  */
70
81
  UpdatePollingInterval(): void;
82
+ /**
83
+ * Observable that fires whenever the active scheduled-job set changes (save, delete,
84
+ * or cross-server invalidation). The emitted set has already had the Active-only filter
85
+ * re-applied. Used server-side to wake a suspended poll timer when a job is activated.
86
+ */
87
+ get JobsChanged$(): Observable<void>;
88
+ /**
89
+ * Re-apply the Active-only filter to {@link _scheduledJobs}.
90
+ *
91
+ * The base engine's event-driven refresh paths (immediate mutation, remote-invalidate)
92
+ * maintain the array by primary key but are unaware of our Status filter, so an
93
+ * activated/deactivated job can leave a stale entry. This restores the invariant that
94
+ * {@link ScheduledJobs} contains only Active jobs.
95
+ */
96
+ private reapplyActiveJobFilter;
97
+ /**
98
+ * Extend the base auto-refresh handling: after the base engine reconciles our cached
99
+ * arrays for a Scheduled Jobs change, re-apply the Active-only filter and notify
100
+ * {@link JobsChanged$} subscribers.
101
+ *
102
+ * The `MJ: Scheduled Jobs` config has no Filter/OrderBy, so the base processes its
103
+ * save/delete/remote-invalidate events via the synchronous immediate-mutation path —
104
+ * meaning `_scheduledJobs` is fully reconciled by the time `super` resolves. This is NOT
105
+ * the debounced full-refresh path; if a Filter/OrderBy is ever added to that config,
106
+ * revisit the timing here.
107
+ */
108
+ protected HandleIndividualBaseEntityEvent(event: BaseEntityEvent): Promise<boolean>;
109
+ /**
110
+ * Determine whether a BaseEntity event targets the `MJ: Scheduled Jobs` entity.
111
+ * Handles both the save/delete shape (carries a `baseEntity`) and the remote-invalidate
112
+ * shape (carries an `entityName` string).
113
+ */
114
+ private isScheduledJobsEvent;
71
115
  /**
72
116
  * Get singleton instance
73
117
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SchedulingEngineBase.d.ts","sourceRoot":"","sources":["../src/SchedulingEngineBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAA4B,iBAAiB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACzG,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAGxH;;;;;;;;;;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;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;;OAEG;IACH,WAAkB,QAAQ,IAAI,oBAAoB,CAEjD;CACJ"}
1
+ {"version":3,"file":"SchedulingEngineBase.d.ts","sourceRoot":"","sources":["../src/SchedulingEngineBase.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAA4B,eAAe,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1H,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;;OAEG;IACH,WAAkB,QAAQ,IAAI,oBAAoB,CAEjD;CACJ"}
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import { BaseEngine } from '@memberjunction/core';
6
6
  import { UUIDsEqual } from '@memberjunction/global';
7
+ import { Subject } from 'rxjs';
7
8
  /**
8
9
  * Base engine for scheduling system with metadata caching
9
10
  *
@@ -22,6 +23,16 @@ export class SchedulingEngineBase extends BaseEngine {
22
23
  this._scheduledJobs = [];
23
24
  this._scheduledJobRuns = [];
24
25
  this._activePollingInterval = 10000; // Default 10 seconds, null when no jobs
26
+ /**
27
+ * Fires whenever the set of active scheduled jobs changes (a job saved, deleted,
28
+ * or invalidated from another server). Emitted AFTER the Active-only filter has been
29
+ * re-applied to {@link ScheduledJobs}, so subscribers always observe a reconciled set.
30
+ *
31
+ * The server-side execution engine subscribes to this to wake a suspended poll timer
32
+ * when a job is activated after boot. No-op on the client (no subscribers).
33
+ * @see MJScheduledJobEntityExtended
34
+ */
35
+ this._jobsChanged = new Subject();
25
36
  }
26
37
  /**
27
38
  * Configure the engine by loading metadata
@@ -55,7 +66,7 @@ export class SchedulingEngineBase extends BaseEngine {
55
66
  await this.Load(configs, provider, forceRefresh, contextUser);
56
67
  // Filter jobs to only active if requested
57
68
  if (!includeAllJobs) {
58
- this._scheduledJobs = this._scheduledJobs.filter(j => j.Status === 'Active');
69
+ this.reapplyActiveJobFilter();
59
70
  }
60
71
  // Filter runs to last 7 days if loaded
61
72
  if (includeRuns) {
@@ -146,6 +157,56 @@ export class SchedulingEngineBase extends BaseEngine {
146
157
  this._activePollingInterval = Math.max(10000, Math.min(604800000, halfInterval));
147
158
  }
148
159
  }
160
+ /**
161
+ * Observable that fires whenever the active scheduled-job set changes (save, delete,
162
+ * or cross-server invalidation). The emitted set has already had the Active-only filter
163
+ * re-applied. Used server-side to wake a suspended poll timer when a job is activated.
164
+ */
165
+ get JobsChanged$() {
166
+ return this._jobsChanged.asObservable();
167
+ }
168
+ /**
169
+ * Re-apply the Active-only filter to {@link _scheduledJobs}.
170
+ *
171
+ * The base engine's event-driven refresh paths (immediate mutation, remote-invalidate)
172
+ * maintain the array by primary key but are unaware of our Status filter, so an
173
+ * activated/deactivated job can leave a stale entry. This restores the invariant that
174
+ * {@link ScheduledJobs} contains only Active jobs.
175
+ */
176
+ reapplyActiveJobFilter() {
177
+ this._scheduledJobs = this._scheduledJobs.filter(j => j.Status === 'Active');
178
+ }
179
+ /**
180
+ * Extend the base auto-refresh handling: after the base engine reconciles our cached
181
+ * arrays for a Scheduled Jobs change, re-apply the Active-only filter and notify
182
+ * {@link JobsChanged$} subscribers.
183
+ *
184
+ * The `MJ: Scheduled Jobs` config has no Filter/OrderBy, so the base processes its
185
+ * save/delete/remote-invalidate events via the synchronous immediate-mutation path —
186
+ * meaning `_scheduledJobs` is fully reconciled by the time `super` resolves. This is NOT
187
+ * the debounced full-refresh path; if a Filter/OrderBy is ever added to that config,
188
+ * revisit the timing here.
189
+ */
190
+ async HandleIndividualBaseEntityEvent(event) {
191
+ const handled = await super.HandleIndividualBaseEntityEvent(event);
192
+ if (this.isScheduledJobsEvent(event)) {
193
+ this.reapplyActiveJobFilter();
194
+ this._jobsChanged.next();
195
+ }
196
+ return handled;
197
+ }
198
+ /**
199
+ * Determine whether a BaseEntity event targets the `MJ: Scheduled Jobs` entity.
200
+ * Handles both the save/delete shape (carries a `baseEntity`) and the remote-invalidate
201
+ * shape (carries an `entityName` string).
202
+ */
203
+ isScheduledJobsEvent(event) {
204
+ const target = 'mj: scheduled jobs';
205
+ const name = event.type === 'remote-invalidate'
206
+ ? event.entityName
207
+ : event.baseEntity?.EntityInfo?.Name;
208
+ return name?.toLowerCase().trim() === target;
209
+ }
149
210
  /**
150
211
  * Get singleton instance
151
212
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SchedulingEngineBase.js","sourceRoot":"","sources":["../src/SchedulingEngineBase.ts"],"names":[],"mappings":"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"}
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.44.0",
4
+ "version": "5.45.0",
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,11 @@
16
16
  "author": "MemberJunction.com",
17
17
  "license": "ISC",
18
18
  "dependencies": {
19
- "@memberjunction/core": "5.44.0",
20
- "@memberjunction/global": "5.44.0",
21
- "@memberjunction/core-entities": "5.44.0",
22
- "@memberjunction/scheduling-base-types": "5.44.0"
19
+ "@memberjunction/core": "5.45.0",
20
+ "@memberjunction/global": "5.45.0",
21
+ "@memberjunction/core-entities": "5.45.0",
22
+ "@memberjunction/scheduling-base-types": "5.45.0",
23
+ "rxjs": "^7.8.2"
23
24
  },
24
25
  "devDependencies": {
25
26
  "@types/node": "24.10.11",