@memberjunction/core-actions 5.31.0 → 5.32.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.
|
@@ -14,9 +14,11 @@ import { BaseAction } from '@memberjunction/actions';
|
|
|
14
14
|
* - **BatchSize** (default 10) — Number of records to geocode **concurrently**
|
|
15
15
|
* in each parallel batch. Controls API rate pressure. Google Geocoding API
|
|
16
16
|
* allows 50 QPS, so 10 is conservative and leaves headroom.
|
|
17
|
-
* - **MaxTotalRecords** (default
|
|
18
|
-
*
|
|
19
|
-
*
|
|
17
|
+
* - **MaxTotalRecords** (default 50,000) — Safety cap on the total number of
|
|
18
|
+
* records processed in a single run. Prevents unbounded memory growth in
|
|
19
|
+
* extreme cases. Override via scheduled job parameters. Logs a warning when
|
|
20
|
+
* the limit is reached so operators know remaining records exist for the
|
|
21
|
+
* next run.
|
|
20
22
|
* - **MaxRetries** (default 5) — Maximum retry count for failed geocoding
|
|
21
23
|
* attempts before a record is considered permanently failed.
|
|
22
24
|
*
|
|
@@ -32,6 +34,10 @@ import { BaseAction } from '@memberjunction/actions';
|
|
|
32
34
|
export declare class ScheduledGeocodingAction extends BaseAction {
|
|
33
35
|
private static readonly DEFAULT_MAX_RETRIES;
|
|
34
36
|
private static readonly DEFAULT_BATCH_SIZE;
|
|
37
|
+
/** Safety default: cap total records per run to prevent unbounded memory growth in extreme cases. */
|
|
38
|
+
private static readonly DEFAULT_MAX_TOTAL;
|
|
39
|
+
/** Page size for RunView pagination — controls how many BaseEntity objects exist simultaneously. */
|
|
40
|
+
private static readonly PAGE_SIZE;
|
|
35
41
|
protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
|
|
36
42
|
/**
|
|
37
43
|
* Find records in geo-enabled entities that have no RecordGeoCode row
|
|
@@ -40,21 +46,27 @@ export declare class ScheduledGeocodingAction extends BaseAction {
|
|
|
40
46
|
*/
|
|
41
47
|
private processMissingRecords;
|
|
42
48
|
/**
|
|
43
|
-
* Process all missing RecordGeoCode rows for a single entity.
|
|
44
|
-
* Loads all entity records with non-null geo fields, filters out those
|
|
45
|
-
* that already have a RecordGeoCode row, then geocodes the rest in
|
|
46
|
-
* parallel batches.
|
|
49
|
+
* Process all missing RecordGeoCode rows for a single entity using pagination.
|
|
47
50
|
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
51
|
+
* Instead of loading ALL entity records into memory at once (which causes OOM
|
|
52
|
+
* with 50k+ records), this fetches pages of PAGE_SIZE records, processes each
|
|
53
|
+
* page, then releases references so previous pages can be GC'd.
|
|
54
|
+
*
|
|
55
|
+
* Also loads all existing RecordGeoCode rows for this entity into a lightweight
|
|
56
|
+
* Map upfront (ExistingGeoCodeInfo — ~5 small fields per row, ~15MB for 50k rows)
|
|
57
|
+
* to eliminate the N+1 per-record FindExistingGeoCode SQL query.
|
|
52
58
|
*/
|
|
53
59
|
private processMissingForEntity;
|
|
54
60
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
61
|
+
* Load a single page of entity records with non-null geo fields.
|
|
62
|
+
* Uses OrderBy on PK + MaxRows + offset simulation via GreaterThan filter
|
|
63
|
+
* to paginate without loading the full result set.
|
|
64
|
+
*/
|
|
65
|
+
private loadEntityPage;
|
|
66
|
+
/**
|
|
67
|
+
* Retry failed geocoding attempts using pagination.
|
|
68
|
+
* Loads pages of failed RecordGeoCode rows, then loads source entity records
|
|
69
|
+
* and re-runs GeoCodeSyncService. Processes up to maxTotal records.
|
|
58
70
|
*/
|
|
59
71
|
private processFailedRetries;
|
|
60
72
|
/**
|
|
@@ -64,9 +76,16 @@ export declare class ScheduledGeocodingAction extends BaseAction {
|
|
|
64
76
|
private loadSourceEntities;
|
|
65
77
|
/**
|
|
66
78
|
* Remove RecordGeoCode rows whose source entity record no longer exists.
|
|
67
|
-
* Processes one entity at a time
|
|
79
|
+
* Processes one entity at a time, paginating orphan queries to avoid loading
|
|
80
|
+
* all orphan rows into memory simultaneously.
|
|
68
81
|
*/
|
|
69
82
|
private cleanupOrphanedRecords;
|
|
83
|
+
/**
|
|
84
|
+
* Paginated orphan cleanup for a single entity. Fetches pages of orphan rows,
|
|
85
|
+
* deletes them, then fetches the next page. Since deleted rows disappear from
|
|
86
|
+
* subsequent queries, we always fetch from offset 0.
|
|
87
|
+
*/
|
|
88
|
+
private cleanupOrphansForEntity;
|
|
70
89
|
/**
|
|
71
90
|
* Geocode a list of entity records in parallel batches, then fire cache
|
|
72
91
|
* invalidation events for each successfully geocoded record.
|
|
@@ -81,6 +100,7 @@ export declare class ScheduledGeocodingAction extends BaseAction {
|
|
|
81
100
|
* @param entityInfo - Entity metadata
|
|
82
101
|
* @param contextUser - User context
|
|
83
102
|
* @param batchSize - Number of concurrent geocoding operations per batch
|
|
103
|
+
* @param existingGeoCodesMap - Optional pre-loaded map passed to GeoCodeSyncService
|
|
84
104
|
*/
|
|
85
105
|
private geocodeBatch;
|
|
86
106
|
/**
|
|
@@ -115,9 +135,16 @@ export declare class ScheduledGeocodingAction extends BaseAction {
|
|
|
115
135
|
*/
|
|
116
136
|
private getGeoAddressFields;
|
|
117
137
|
/**
|
|
118
|
-
*
|
|
138
|
+
* Load all existing RecordGeoCode rows for an entity into a lightweight Map.
|
|
139
|
+
* Keyed by `RecordID|LocationType` for O(1) lookup.
|
|
140
|
+
*
|
|
141
|
+
* This replaces both the old getExistingGeoCodeRecordIds() Set (for filtering
|
|
142
|
+
* missing records) and the per-record FindExistingGeoCode() SQL query in
|
|
143
|
+
* GeoCodeSyncService (for staleness checking). The map holds ~5 small string
|
|
144
|
+
* fields per row — even 50k rows is only ~15MB, safe to hold in memory for
|
|
145
|
+
* the duration of one entity's processing.
|
|
119
146
|
*/
|
|
120
|
-
private
|
|
147
|
+
private loadExistingGeoCodesMap;
|
|
121
148
|
/**
|
|
122
149
|
* Build a RecordID string from an entity's primary key, matching the
|
|
123
150
|
* format used in the view's LEFT JOIN to RecordGeoCode.
|
|
@@ -127,9 +154,5 @@ export declare class ScheduledGeocodingAction extends BaseAction {
|
|
|
127
154
|
* Extract a numeric parameter with a default value.
|
|
128
155
|
*/
|
|
129
156
|
private getNumericParam;
|
|
130
|
-
/**
|
|
131
|
-
* Extract an optional numeric parameter. Returns null if not provided.
|
|
132
|
-
*/
|
|
133
|
-
private getNullableNumericParam;
|
|
134
157
|
}
|
|
135
158
|
//# sourceMappingURL=scheduled-geocoding.action.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduled-geocoding.action.d.ts","sourceRoot":"","sources":["../../../src/custom/geo/scheduled-geocoding.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AASrD
|
|
1
|
+
{"version":3,"file":"scheduled-geocoding.action.d.ts","sourceRoot":"","sources":["../../../src/custom/geo/scheduled-geocoding.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AASrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBACa,wBAAyB,SAAQ,UAAU;IACpD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAK;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAM;IAChD,qGAAqG;IACrG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IACnD,oGAAoG;IACpG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAO;cAExB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA8CvF;;;;OAIG;YACW,qBAAqB;IA2BnC;;;;;;;;;;OAUG;YACW,uBAAuB;IA+DrC;;;;OAIG;YACW,cAAc;IA2B5B;;;;OAIG;YACW,oBAAoB;IAkElC;;;OAGG;YACW,kBAAkB;IA6BhC;;;;OAIG;YACW,sBAAsB;IA0CpC;;;;OAIG;YACW,uBAAuB;IA8CrC;;;;;;;;;;;;;;;OAeG;YACW,YAAY;IA2B1B;;;;;;;;;;OAUG;YACW,oBAAoB;IA2BlC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,sBAAsB;IAsB9B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;;;;;;;;OASG;YACW,uBAAuB;IAoCrC;;;OAGG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,eAAe;CAO1B"}
|
|
@@ -23,9 +23,11 @@ import { GeoCodeSyncService } from '@memberjunction/geo-core';
|
|
|
23
23
|
* - **BatchSize** (default 10) — Number of records to geocode **concurrently**
|
|
24
24
|
* in each parallel batch. Controls API rate pressure. Google Geocoding API
|
|
25
25
|
* allows 50 QPS, so 10 is conservative and leaves headroom.
|
|
26
|
-
* - **MaxTotalRecords** (default
|
|
27
|
-
*
|
|
28
|
-
*
|
|
26
|
+
* - **MaxTotalRecords** (default 50,000) — Safety cap on the total number of
|
|
27
|
+
* records processed in a single run. Prevents unbounded memory growth in
|
|
28
|
+
* extreme cases. Override via scheduled job parameters. Logs a warning when
|
|
29
|
+
* the limit is reached so operators know remaining records exist for the
|
|
30
|
+
* next run.
|
|
29
31
|
* - **MaxRetries** (default 5) — Maximum retry count for failed geocoding
|
|
30
32
|
* attempts before a record is considered permanently failed.
|
|
31
33
|
*
|
|
@@ -42,6 +44,10 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
42
44
|
static { ScheduledGeocodingAction_1 = this; }
|
|
43
45
|
static { this.DEFAULT_MAX_RETRIES = 5; }
|
|
44
46
|
static { this.DEFAULT_BATCH_SIZE = 10; }
|
|
47
|
+
/** Safety default: cap total records per run to prevent unbounded memory growth in extreme cases. */
|
|
48
|
+
static { this.DEFAULT_MAX_TOTAL = 50_000; }
|
|
49
|
+
/** Page size for RunView pagination — controls how many BaseEntity objects exist simultaneously. */
|
|
50
|
+
static { this.PAGE_SIZE = 500; }
|
|
45
51
|
async InternalRunAction(params) {
|
|
46
52
|
const contextUser = params.ContextUser;
|
|
47
53
|
if (!contextUser) {
|
|
@@ -49,20 +55,24 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
49
55
|
}
|
|
50
56
|
const maxRetries = this.getNumericParam(params, 'MaxRetries', ScheduledGeocodingAction_1.DEFAULT_MAX_RETRIES);
|
|
51
57
|
const batchSize = this.getNumericParam(params, 'BatchSize', ScheduledGeocodingAction_1.DEFAULT_BATCH_SIZE);
|
|
52
|
-
const maxTotal = this.
|
|
53
|
-
LogStatus(`ScheduledGeocodingAction: Starting maintenance run (BatchSize=${batchSize}, MaxTotal=${maxTotal
|
|
58
|
+
const maxTotal = this.getNumericParam(params, 'MaxTotalRecords', ScheduledGeocodingAction_1.DEFAULT_MAX_TOTAL);
|
|
59
|
+
LogStatus(`ScheduledGeocodingAction: Starting maintenance run (BatchSize=${batchSize}, MaxTotal=${maxTotal})`);
|
|
54
60
|
const stats = { MissingProcessed: 0, MissingSuccess: 0, RetriesProcessed: 0, RetriesSuccess: 0, OrphansRemoved: 0 };
|
|
55
61
|
// Step 1: Find and geocode missing records
|
|
56
62
|
const missingStats = await this.processMissingRecords(contextUser, batchSize, maxTotal, params.Provider);
|
|
57
63
|
stats.MissingProcessed = missingStats.Processed;
|
|
58
64
|
stats.MissingSuccess = missingStats.Success;
|
|
59
65
|
// Step 2: Retry failed geocoding attempts
|
|
60
|
-
const retryMaxTotal =
|
|
66
|
+
const retryMaxTotal = Math.max(0, maxTotal - stats.MissingProcessed);
|
|
61
67
|
const retryStats = await this.processFailedRetries(contextUser, maxRetries, batchSize, retryMaxTotal, params.Provider);
|
|
62
68
|
stats.RetriesProcessed = retryStats.Processed;
|
|
63
69
|
stats.RetriesSuccess = retryStats.Success;
|
|
64
70
|
// Step 3: Clean up orphaned RecordGeoCode rows
|
|
65
71
|
stats.OrphansRemoved = await this.cleanupOrphanedRecords(contextUser, batchSize, params.Provider);
|
|
72
|
+
const totalRecordsProcessed = stats.MissingProcessed + stats.RetriesProcessed;
|
|
73
|
+
if (totalRecordsProcessed >= maxTotal) {
|
|
74
|
+
LogStatus(`ScheduledGeocodingAction: WARNING — MaxTotal limit (${maxTotal}) reached. There may be remaining records for the next run.`);
|
|
75
|
+
}
|
|
66
76
|
LogStatus(`ScheduledGeocodingAction: Complete — Missing: ${stats.MissingProcessed} processed (${stats.MissingSuccess} success), Retries: ${stats.RetriesProcessed} (${stats.RetriesSuccess} success), Orphans: ${stats.OrphansRemoved} removed`);
|
|
67
77
|
return {
|
|
68
78
|
Success: true,
|
|
@@ -84,9 +94,9 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
84
94
|
let totalProcessed = 0;
|
|
85
95
|
let totalSuccess = 0;
|
|
86
96
|
for (const entityInfo of geoEntities) {
|
|
87
|
-
if (
|
|
97
|
+
if (totalProcessed >= maxTotal)
|
|
88
98
|
break;
|
|
89
|
-
const remaining = maxTotal
|
|
99
|
+
const remaining = maxTotal - totalProcessed;
|
|
90
100
|
const entityStats = await this.processMissingForEntity(entityInfo, contextUser, batchSize, remaining);
|
|
91
101
|
totalProcessed += entityStats.Processed;
|
|
92
102
|
totalSuccess += entityStats.Success;
|
|
@@ -97,18 +107,17 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
97
107
|
return { Processed: totalProcessed, Success: totalSuccess };
|
|
98
108
|
}
|
|
99
109
|
/**
|
|
100
|
-
* Process all missing RecordGeoCode rows for a single entity.
|
|
101
|
-
* Loads all entity records with non-null geo fields, filters out those
|
|
102
|
-
* that already have a RecordGeoCode row, then geocodes the rest in
|
|
103
|
-
* parallel batches.
|
|
110
|
+
* Process all missing RecordGeoCode rows for a single entity using pagination.
|
|
104
111
|
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
112
|
+
* Instead of loading ALL entity records into memory at once (which causes OOM
|
|
113
|
+
* with 50k+ records), this fetches pages of PAGE_SIZE records, processes each
|
|
114
|
+
* page, then releases references so previous pages can be GC'd.
|
|
115
|
+
*
|
|
116
|
+
* Also loads all existing RecordGeoCode rows for this entity into a lightweight
|
|
117
|
+
* Map upfront (ExistingGeoCodeInfo — ~5 small fields per row, ~15MB for 50k rows)
|
|
118
|
+
* to eliminate the N+1 per-record FindExistingGeoCode SQL query.
|
|
109
119
|
*/
|
|
110
120
|
async processMissingForEntity(entityInfo, contextUser, batchSize, maxRows) {
|
|
111
|
-
const rv = new RunView();
|
|
112
121
|
const pkField = entityInfo.FirstPrimaryKey;
|
|
113
122
|
if (!pkField)
|
|
114
123
|
return { Processed: 0, Success: 0 };
|
|
@@ -116,33 +125,41 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
116
125
|
if (geoFields.length === 0)
|
|
117
126
|
return { Processed: 0, Success: 0 };
|
|
118
127
|
try {
|
|
119
|
-
//
|
|
120
|
-
|
|
121
|
-
//
|
|
128
|
+
// Bulk load: lightweight map of all existing RecordGeoCode rows for this entity.
|
|
129
|
+
// Used both for filtering (which records are missing) and passed through to
|
|
130
|
+
// GeoCodeSyncService to eliminate per-record SQL queries.
|
|
131
|
+
const existingMap = await this.loadExistingGeoCodesMap(entityInfo.ID, contextUser);
|
|
122
132
|
const nonNullConditions = geoFields.map(f => `${f.Name} IS NOT NULL`).join(' OR ');
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
missingRecords
|
|
133
|
+
let totalProcessed = 0;
|
|
134
|
+
let totalSuccess = 0;
|
|
135
|
+
let pageOffset = 0;
|
|
136
|
+
// Paginate through entity records to avoid loading all into memory at once
|
|
137
|
+
while (totalProcessed < maxRows) {
|
|
138
|
+
const pageResult = await this.loadEntityPage(entityInfo.Name, nonNullConditions, pageOffset, contextUser);
|
|
139
|
+
if (!pageResult.Success || pageResult.Results.length === 0)
|
|
140
|
+
break;
|
|
141
|
+
const pageEntities = pageResult.Results;
|
|
142
|
+
// Filter to records missing geocodes (not in existingMap for any LocationType)
|
|
143
|
+
const missingRecords = pageEntities.filter(entity => {
|
|
144
|
+
const recordId = this.buildRecordId(entity);
|
|
145
|
+
// A record is "missing" if it has no existing geocode row at all.
|
|
146
|
+
// Check for 'Primary' since that's the only LocationType currently generated.
|
|
147
|
+
const key = GeoCodeSyncService.BuildGeoCodeMapKey(recordId, 'Primary');
|
|
148
|
+
return !existingMap.has(key);
|
|
149
|
+
});
|
|
150
|
+
if (missingRecords.length > 0) {
|
|
151
|
+
const budget = maxRows - totalProcessed;
|
|
152
|
+
const toProcess = missingRecords.slice(0, budget);
|
|
153
|
+
const stats = await this.geocodeBatch(toProcess, entityInfo, contextUser, batchSize, existingMap);
|
|
154
|
+
totalProcessed += stats.Processed;
|
|
155
|
+
totalSuccess += stats.Success;
|
|
156
|
+
}
|
|
157
|
+
// If this page was smaller than PAGE_SIZE, we've exhausted the entity
|
|
158
|
+
if (pageEntities.length < ScheduledGeocodingAction_1.PAGE_SIZE)
|
|
159
|
+
break;
|
|
160
|
+
pageOffset += ScheduledGeocodingAction_1.PAGE_SIZE;
|
|
141
161
|
}
|
|
142
|
-
|
|
143
|
-
return { Processed: 0, Success: 0 };
|
|
144
|
-
// Geocode in parallel batches
|
|
145
|
-
return await this.geocodeBatch(missingRecords, entityInfo, contextUser, batchSize);
|
|
162
|
+
return { Processed: totalProcessed, Success: totalSuccess };
|
|
146
163
|
}
|
|
147
164
|
catch (e) {
|
|
148
165
|
const msg = e instanceof Error ? e.message : String(e);
|
|
@@ -150,56 +167,85 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
150
167
|
return { Processed: 0, Success: 0 };
|
|
151
168
|
}
|
|
152
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Load a single page of entity records with non-null geo fields.
|
|
172
|
+
* Uses OrderBy on PK + MaxRows + offset simulation via GreaterThan filter
|
|
173
|
+
* to paginate without loading the full result set.
|
|
174
|
+
*/
|
|
175
|
+
async loadEntityPage(entityName, nonNullFilter, offset, contextUser) {
|
|
176
|
+
const rv = new RunView();
|
|
177
|
+
const result = await rv.RunView({
|
|
178
|
+
EntityName: entityName,
|
|
179
|
+
ExtraFilter: `(${nonNullFilter})`,
|
|
180
|
+
OrderBy: 'ID',
|
|
181
|
+
MaxRows: ScheduledGeocodingAction_1.PAGE_SIZE,
|
|
182
|
+
StartRow: offset + 1, // RunView StartRow is 1-based
|
|
183
|
+
BypassCache: true,
|
|
184
|
+
ResultType: 'entity_object'
|
|
185
|
+
}, contextUser);
|
|
186
|
+
return {
|
|
187
|
+
Success: result.Success,
|
|
188
|
+
Results: result.Success ? result.Results : []
|
|
189
|
+
};
|
|
190
|
+
}
|
|
153
191
|
// ================================================================
|
|
154
192
|
// Step 2: Retry failed geocoding attempts
|
|
155
193
|
// ================================================================
|
|
156
194
|
/**
|
|
157
|
-
* Retry failed geocoding attempts
|
|
158
|
-
*
|
|
159
|
-
*
|
|
195
|
+
* Retry failed geocoding attempts using pagination.
|
|
196
|
+
* Loads pages of failed RecordGeoCode rows, then loads source entity records
|
|
197
|
+
* and re-runs GeoCodeSyncService. Processes up to maxTotal records.
|
|
160
198
|
*/
|
|
161
199
|
async processFailedRetries(contextUser, maxRetries, batchSize, maxTotal, provider) {
|
|
162
|
-
|
|
163
|
-
const failedResult = await rv.RunView({
|
|
164
|
-
EntityName: 'MJ: Record Geo Codes',
|
|
165
|
-
ExtraFilter: `Status='failed' AND RetryCount < ${maxRetries}`,
|
|
166
|
-
IgnoreMaxRows: true,
|
|
167
|
-
OrderBy: 'RetryCount ASC, GeocodedAt ASC',
|
|
168
|
-
ResultType: 'entity_object'
|
|
169
|
-
}, contextUser);
|
|
170
|
-
if (!failedResult.Success || failedResult.Results.length === 0) {
|
|
200
|
+
if (maxTotal <= 0)
|
|
171
201
|
return { Processed: 0, Success: 0 };
|
|
172
|
-
}
|
|
173
|
-
let records = failedResult.Results;
|
|
174
|
-
if (maxTotal != null) {
|
|
175
|
-
records = records.slice(0, maxTotal);
|
|
176
|
-
}
|
|
177
|
-
LogStatus(`ScheduledGeocodingAction: ${records.length} failed records eligible for retry`);
|
|
178
202
|
const md = (provider ?? new Metadata());
|
|
203
|
+
const rv = new RunView();
|
|
179
204
|
let totalProcessed = 0;
|
|
180
205
|
let totalSuccess = 0;
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
206
|
+
let pageOffset = 0;
|
|
207
|
+
while (totalProcessed < maxTotal) {
|
|
208
|
+
const pageResult = await rv.RunView({
|
|
209
|
+
EntityName: 'MJ: Record Geo Codes',
|
|
210
|
+
ExtraFilter: `Status='failed' AND RetryCount < ${maxRetries}`,
|
|
211
|
+
OrderBy: 'RetryCount ASC, GeocodedAt ASC',
|
|
212
|
+
MaxRows: ScheduledGeocodingAction_1.PAGE_SIZE,
|
|
213
|
+
StartRow: pageOffset + 1,
|
|
214
|
+
BypassCache: true,
|
|
215
|
+
ResultType: 'entity_object'
|
|
216
|
+
}, contextUser);
|
|
217
|
+
if (!pageResult.Success || pageResult.Results.length === 0)
|
|
218
|
+
break;
|
|
219
|
+
const budget = maxTotal - totalProcessed;
|
|
220
|
+
const records = pageResult.Results.slice(0, budget);
|
|
221
|
+
if (totalProcessed === 0) {
|
|
222
|
+
LogStatus(`ScheduledGeocodingAction: Processing failed records for retry`);
|
|
189
223
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
224
|
+
// Group by entity for efficient processing
|
|
225
|
+
const byEntity = new Map();
|
|
226
|
+
for (const geoRecord of records) {
|
|
227
|
+
const key = geoRecord.EntityID;
|
|
228
|
+
let arr = byEntity.get(key);
|
|
229
|
+
if (!arr) {
|
|
230
|
+
arr = [];
|
|
231
|
+
byEntity.set(key, arr);
|
|
232
|
+
}
|
|
233
|
+
arr.push(geoRecord);
|
|
234
|
+
}
|
|
235
|
+
for (const [entityId, geoRecords] of byEntity) {
|
|
236
|
+
const entityInfo = md.EntityByID(entityId);
|
|
237
|
+
if (!entityInfo)
|
|
238
|
+
continue;
|
|
239
|
+
const entities = await this.loadSourceEntities(geoRecords, entityInfo, contextUser, provider);
|
|
240
|
+
if (entities.length === 0)
|
|
241
|
+
continue;
|
|
242
|
+
const stats = await this.geocodeBatch(entities, entityInfo, contextUser, batchSize);
|
|
243
|
+
totalProcessed += stats.Processed;
|
|
244
|
+
totalSuccess += stats.Success;
|
|
245
|
+
}
|
|
246
|
+
if (pageResult.Results.length < ScheduledGeocodingAction_1.PAGE_SIZE)
|
|
247
|
+
break;
|
|
248
|
+
pageOffset += ScheduledGeocodingAction_1.PAGE_SIZE;
|
|
203
249
|
}
|
|
204
250
|
return { Processed: totalProcessed, Success: totalSuccess };
|
|
205
251
|
}
|
|
@@ -230,13 +276,14 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
230
276
|
// ================================================================
|
|
231
277
|
/**
|
|
232
278
|
* Remove RecordGeoCode rows whose source entity record no longer exists.
|
|
233
|
-
* Processes one entity at a time
|
|
279
|
+
* Processes one entity at a time, paginating orphan queries to avoid loading
|
|
280
|
+
* all orphan rows into memory simultaneously.
|
|
234
281
|
*/
|
|
235
282
|
async cleanupOrphanedRecords(contextUser, batchSize, provider) {
|
|
236
283
|
const rv = new RunView();
|
|
237
284
|
const md = (provider ?? new Metadata());
|
|
238
285
|
let totalRemoved = 0;
|
|
239
|
-
// Get distinct EntityIDs from RecordGeoCode
|
|
286
|
+
// Get distinct EntityIDs from RecordGeoCode (lightweight — just IDs)
|
|
240
287
|
const entityResult = await rv.RunView({
|
|
241
288
|
EntityName: 'MJ: Record Geo Codes',
|
|
242
289
|
Fields: ['EntityID'],
|
|
@@ -254,22 +301,8 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
254
301
|
const pkField = entityInfo.FirstPrimaryKey;
|
|
255
302
|
if (!pkField)
|
|
256
303
|
continue;
|
|
257
|
-
const
|
|
258
|
-
|
|
259
|
-
ExtraFilter: `EntityID = '${entityId}' AND NOT EXISTS (SELECT 1 FROM ${entityInfo.SchemaName}.${entityInfo.BaseTable} src WHERE CAST(src.${pkField.Name} AS NVARCHAR(450)) = RecordID)`,
|
|
260
|
-
IgnoreMaxRows: true,
|
|
261
|
-
ResultType: 'entity_object'
|
|
262
|
-
}, contextUser);
|
|
263
|
-
if (orphanResult.Success && orphanResult.Results.length > 0) {
|
|
264
|
-
// Delete orphans in parallel batches
|
|
265
|
-
const orphans = orphanResult.Results;
|
|
266
|
-
for (let i = 0; i < orphans.length; i += batchSize) {
|
|
267
|
-
const batch = orphans.slice(i, i + batchSize);
|
|
268
|
-
const results = await Promise.allSettled(batch.map(o => o.Delete()));
|
|
269
|
-
totalRemoved += results.filter(r => r.status === 'fulfilled' && r.value).length;
|
|
270
|
-
}
|
|
271
|
-
LogStatus(`ScheduledGeocodingAction: Removed ${orphanResult.Results.length} orphaned geo records for ${entityInfo.Name}`);
|
|
272
|
-
}
|
|
304
|
+
const entityRemoved = await this.cleanupOrphansForEntity(entityId, entityInfo, pkField.Name, contextUser, batchSize, rv);
|
|
305
|
+
totalRemoved += entityRemoved;
|
|
273
306
|
}
|
|
274
307
|
catch (e) {
|
|
275
308
|
const msg = e instanceof Error ? e.message : String(e);
|
|
@@ -278,6 +311,41 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
278
311
|
}
|
|
279
312
|
return totalRemoved;
|
|
280
313
|
}
|
|
314
|
+
/**
|
|
315
|
+
* Paginated orphan cleanup for a single entity. Fetches pages of orphan rows,
|
|
316
|
+
* deletes them, then fetches the next page. Since deleted rows disappear from
|
|
317
|
+
* subsequent queries, we always fetch from offset 0.
|
|
318
|
+
*/
|
|
319
|
+
async cleanupOrphansForEntity(entityId, entityInfo, pkFieldName, contextUser, batchSize, rv) {
|
|
320
|
+
let entityRemoved = 0;
|
|
321
|
+
const orphanFilter = `EntityID = '${entityId}' AND NOT EXISTS (SELECT 1 FROM ${entityInfo.SchemaName}.${entityInfo.BaseTable} src WHERE CAST(src.${pkFieldName} AS NVARCHAR(450)) = RecordID)`;
|
|
322
|
+
// Paginate: fetch a page, delete it, repeat. Since we're deleting rows,
|
|
323
|
+
// always query from the start — deleted rows won't appear again.
|
|
324
|
+
let hasMore = true;
|
|
325
|
+
while (hasMore) {
|
|
326
|
+
const orphanResult = await rv.RunView({
|
|
327
|
+
EntityName: 'MJ: Record Geo Codes',
|
|
328
|
+
ExtraFilter: orphanFilter,
|
|
329
|
+
MaxRows: ScheduledGeocodingAction_1.PAGE_SIZE,
|
|
330
|
+
BypassCache: true,
|
|
331
|
+
ResultType: 'entity_object'
|
|
332
|
+
}, contextUser);
|
|
333
|
+
if (!orphanResult.Success || orphanResult.Results.length === 0)
|
|
334
|
+
break;
|
|
335
|
+
const orphans = orphanResult.Results;
|
|
336
|
+
for (let i = 0; i < orphans.length; i += batchSize) {
|
|
337
|
+
const batch = orphans.slice(i, i + batchSize);
|
|
338
|
+
const results = await Promise.allSettled(batch.map(o => o.Delete()));
|
|
339
|
+
entityRemoved += results.filter(r => r.status === 'fulfilled' && r.value).length;
|
|
340
|
+
}
|
|
341
|
+
// If we got fewer than PAGE_SIZE, we've exhausted the orphans
|
|
342
|
+
hasMore = orphans.length >= ScheduledGeocodingAction_1.PAGE_SIZE;
|
|
343
|
+
}
|
|
344
|
+
if (entityRemoved > 0) {
|
|
345
|
+
LogStatus(`ScheduledGeocodingAction: Removed ${entityRemoved} orphaned geo records for ${entityInfo.Name}`);
|
|
346
|
+
}
|
|
347
|
+
return entityRemoved;
|
|
348
|
+
}
|
|
281
349
|
// ================================================================
|
|
282
350
|
// Core: parallel batch geocoding with cache invalidation
|
|
283
351
|
// ================================================================
|
|
@@ -295,12 +363,13 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
295
363
|
* @param entityInfo - Entity metadata
|
|
296
364
|
* @param contextUser - User context
|
|
297
365
|
* @param batchSize - Number of concurrent geocoding operations per batch
|
|
366
|
+
* @param existingGeoCodesMap - Optional pre-loaded map passed to GeoCodeSyncService
|
|
298
367
|
*/
|
|
299
|
-
async geocodeBatch(entities, entityInfo, contextUser, batchSize) {
|
|
368
|
+
async geocodeBatch(entities, entityInfo, contextUser, batchSize, existingGeoCodesMap) {
|
|
300
369
|
let totalSuccess = 0;
|
|
301
370
|
for (let i = 0; i < entities.length; i += batchSize) {
|
|
302
371
|
const batch = entities.slice(i, i + batchSize);
|
|
303
|
-
const results = await Promise.allSettled(batch.map(entity => this.geocodeAndInvalidate(entity, contextUser)));
|
|
372
|
+
const results = await Promise.allSettled(batch.map(entity => this.geocodeAndInvalidate(entity, contextUser, existingGeoCodesMap)));
|
|
304
373
|
const batchSuccess = results.filter(r => r.status === 'fulfilled' && r.value).length;
|
|
305
374
|
totalSuccess += batchSuccess;
|
|
306
375
|
if (entities.length > batchSize) {
|
|
@@ -320,9 +389,9 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
320
389
|
*
|
|
321
390
|
* @returns true if geocoding succeeded, false otherwise
|
|
322
391
|
*/
|
|
323
|
-
async geocodeAndInvalidate(entity, contextUser) {
|
|
392
|
+
async geocodeAndInvalidate(entity, contextUser, existingGeoCodesMap) {
|
|
324
393
|
try {
|
|
325
|
-
const result = await GeoCodeSyncService.Instance.SyncIfChanged(entity, contextUser);
|
|
394
|
+
const result = await GeoCodeSyncService.Instance.SyncIfChanged(entity, contextUser, undefined, existingGeoCodesMap);
|
|
326
395
|
if (result) {
|
|
327
396
|
// Geocoding produced new coordinates — fire cache invalidation.
|
|
328
397
|
// Reload the entity to pick up fresh data from the view (including
|
|
@@ -380,18 +449,39 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
380
449
|
f.ExtendedType !== 'GeoLatitude' && f.ExtendedType !== 'GeoLongitude');
|
|
381
450
|
}
|
|
382
451
|
/**
|
|
383
|
-
*
|
|
452
|
+
* Load all existing RecordGeoCode rows for an entity into a lightweight Map.
|
|
453
|
+
* Keyed by `RecordID|LocationType` for O(1) lookup.
|
|
454
|
+
*
|
|
455
|
+
* This replaces both the old getExistingGeoCodeRecordIds() Set (for filtering
|
|
456
|
+
* missing records) and the per-record FindExistingGeoCode() SQL query in
|
|
457
|
+
* GeoCodeSyncService (for staleness checking). The map holds ~5 small string
|
|
458
|
+
* fields per row — even 50k rows is only ~15MB, safe to hold in memory for
|
|
459
|
+
* the duration of one entity's processing.
|
|
384
460
|
*/
|
|
385
|
-
async
|
|
461
|
+
async loadExistingGeoCodesMap(entityId, contextUser) {
|
|
386
462
|
const rv = new RunView();
|
|
387
|
-
const
|
|
463
|
+
const result = await rv.RunView({
|
|
388
464
|
EntityName: 'MJ: Record Geo Codes',
|
|
389
465
|
ExtraFilter: `EntityID = '${entityId}'`,
|
|
390
|
-
Fields: ['RecordID'],
|
|
466
|
+
Fields: ['ID', 'RecordID', 'LocationType', 'SourceFieldHash', 'Status'],
|
|
391
467
|
ResultType: 'simple',
|
|
392
|
-
IgnoreMaxRows: true
|
|
468
|
+
IgnoreMaxRows: true,
|
|
469
|
+
BypassCache: true
|
|
393
470
|
}, contextUser);
|
|
394
|
-
|
|
471
|
+
const map = new Map();
|
|
472
|
+
if (result.Success) {
|
|
473
|
+
for (const row of result.Results) {
|
|
474
|
+
const key = GeoCodeSyncService.BuildGeoCodeMapKey(row.RecordID, row.LocationType);
|
|
475
|
+
map.set(key, {
|
|
476
|
+
ID: row.ID,
|
|
477
|
+
RecordID: row.RecordID,
|
|
478
|
+
LocationType: row.LocationType,
|
|
479
|
+
SourceFieldHash: row.SourceFieldHash,
|
|
480
|
+
Status: row.Status
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
return map;
|
|
395
485
|
}
|
|
396
486
|
/**
|
|
397
487
|
* Build a RecordID string from an entity's primary key, matching the
|
|
@@ -413,16 +503,6 @@ let ScheduledGeocodingAction = class ScheduledGeocodingAction extends BaseAction
|
|
|
413
503
|
const parsed = Number(param.Value);
|
|
414
504
|
return isNaN(parsed) ? defaultValue : parsed;
|
|
415
505
|
}
|
|
416
|
-
/**
|
|
417
|
-
* Extract an optional numeric parameter. Returns null if not provided.
|
|
418
|
-
*/
|
|
419
|
-
getNullableNumericParam(params, name) {
|
|
420
|
-
const param = params.Params.find(p => p.Name.trim().toLowerCase() === name.toLowerCase());
|
|
421
|
-
if (!param || param.Value === undefined || param.Value === null)
|
|
422
|
-
return null;
|
|
423
|
-
const parsed = Number(param.Value);
|
|
424
|
-
return isNaN(parsed) ? null : parsed;
|
|
425
|
-
}
|
|
426
506
|
};
|
|
427
507
|
ScheduledGeocodingAction = ScheduledGeocodingAction_1 = __decorate([
|
|
428
508
|
RegisterClass(BaseAction, 'Scheduled Geocoding')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduled-geocoding.action.js","sourceRoot":"","sources":["../../../src/custom/geo/scheduled-geocoding.action.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scheduled-geocoding.action.js","sourceRoot":"","sources":["../../../src/custom/geo/scheduled-geocoding.action.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/core-actions",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.32.0",
|
|
5
5
|
"description": "Library of generated and custom actions for the core MemberJunction framework. This library is maintained by MemberJunction and includes actions for use within the framework itself.",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -25,34 +25,34 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@asamuzakjp/css-color": "^4.1.2",
|
|
27
27
|
"@dagrejs/dagre": "^1.1.8",
|
|
28
|
-
"@memberjunction/actions": "5.
|
|
29
|
-
"@memberjunction/actions-base": "5.
|
|
30
|
-
"@memberjunction/ai": "5.
|
|
31
|
-
"@memberjunction/ai-mcp-client": "5.
|
|
32
|
-
"@memberjunction/ai-agent-manager": "5.
|
|
33
|
-
"@memberjunction/ai-agents": "5.
|
|
34
|
-
"@memberjunction/ai-betty-bot": "5.
|
|
35
|
-
"@memberjunction/ai-core-plus": "5.
|
|
36
|
-
"@memberjunction/ai-engine-base": "5.
|
|
37
|
-
"@memberjunction/ai-prompts": "5.
|
|
38
|
-
"@memberjunction/ai-vector-sync": "5.
|
|
39
|
-
"@memberjunction/aiengine": "5.
|
|
40
|
-
"@memberjunction/geo-core": "5.
|
|
41
|
-
"@memberjunction/code-execution": "5.
|
|
42
|
-
"@memberjunction/communication-engine": "5.
|
|
43
|
-
"@memberjunction/communication-types": "5.
|
|
44
|
-
"@memberjunction/content-autotagging": "5.
|
|
45
|
-
"@memberjunction/core": "5.
|
|
46
|
-
"@memberjunction/core-entities": "5.
|
|
47
|
-
"@memberjunction/core-entities-server": "5.
|
|
48
|
-
"@memberjunction/export-engine": "5.
|
|
49
|
-
"@memberjunction/external-change-detection": "5.
|
|
50
|
-
"@memberjunction/generic-database-provider": "5.
|
|
51
|
-
"@memberjunction/global": "5.
|
|
52
|
-
"@memberjunction/integration-engine": "5.
|
|
53
|
-
"@memberjunction/search-engine": "5.
|
|
54
|
-
"@memberjunction/sqlserver-dataprovider": "5.
|
|
55
|
-
"@memberjunction/storage": "5.
|
|
28
|
+
"@memberjunction/actions": "5.32.0",
|
|
29
|
+
"@memberjunction/actions-base": "5.32.0",
|
|
30
|
+
"@memberjunction/ai": "5.32.0",
|
|
31
|
+
"@memberjunction/ai-mcp-client": "5.32.0",
|
|
32
|
+
"@memberjunction/ai-agent-manager": "5.32.0",
|
|
33
|
+
"@memberjunction/ai-agents": "5.32.0",
|
|
34
|
+
"@memberjunction/ai-betty-bot": "5.32.0",
|
|
35
|
+
"@memberjunction/ai-core-plus": "5.32.0",
|
|
36
|
+
"@memberjunction/ai-engine-base": "5.32.0",
|
|
37
|
+
"@memberjunction/ai-prompts": "5.32.0",
|
|
38
|
+
"@memberjunction/ai-vector-sync": "5.32.0",
|
|
39
|
+
"@memberjunction/aiengine": "5.32.0",
|
|
40
|
+
"@memberjunction/geo-core": "5.32.0",
|
|
41
|
+
"@memberjunction/code-execution": "5.32.0",
|
|
42
|
+
"@memberjunction/communication-engine": "5.32.0",
|
|
43
|
+
"@memberjunction/communication-types": "5.32.0",
|
|
44
|
+
"@memberjunction/content-autotagging": "5.32.0",
|
|
45
|
+
"@memberjunction/core": "5.32.0",
|
|
46
|
+
"@memberjunction/core-entities": "5.32.0",
|
|
47
|
+
"@memberjunction/core-entities-server": "5.32.0",
|
|
48
|
+
"@memberjunction/export-engine": "5.32.0",
|
|
49
|
+
"@memberjunction/external-change-detection": "5.32.0",
|
|
50
|
+
"@memberjunction/generic-database-provider": "5.32.0",
|
|
51
|
+
"@memberjunction/global": "5.32.0",
|
|
52
|
+
"@memberjunction/integration-engine": "5.32.0",
|
|
53
|
+
"@memberjunction/search-engine": "5.32.0",
|
|
54
|
+
"@memberjunction/sqlserver-dataprovider": "5.32.0",
|
|
55
|
+
"@memberjunction/storage": "5.32.0",
|
|
56
56
|
"@types/d3-cloud": "^1.2.9",
|
|
57
57
|
"@types/d3-force": "^3.0.10",
|
|
58
58
|
"@types/d3-hierarchy": "^3.1.7",
|