@bitblit/ratchet-epsilon-common 4.0.456-alpha → 4.0.458-alpha
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.
|
@@ -6,9 +6,11 @@ import { BackgroundHandler } from '../background/background-handler.js';
|
|
|
6
6
|
import { BackgroundManagerLike } from '../background/manager/background-manager-like.js';
|
|
7
7
|
export declare class CronEpsilonLambdaEventHandler implements EpsilonLambdaEventHandler<ScheduledEvent> {
|
|
8
8
|
private _epsilon;
|
|
9
|
+
static readonly CRON_EVENT_TIMESTAMP_MISMATCH_MAX_THRESHOLD_MINUTES = 5;
|
|
9
10
|
constructor(_epsilon: EpsilonInstance);
|
|
10
11
|
extractLabel(evt: ScheduledEvent, context: Context): string;
|
|
11
12
|
handlesEvent(evt: any): boolean;
|
|
12
13
|
processEvent(evt: ScheduledEvent, context: Context): Promise<ProxyResult>;
|
|
13
14
|
static processCronEvent(evt: ScheduledEvent, cronConfig: CronConfig, backgroundManager: BackgroundManagerLike, background: BackgroundHandler): Promise<boolean>;
|
|
15
|
+
private static getCronTimeToUse;
|
|
14
16
|
}
|
|
@@ -2,8 +2,10 @@ import { Logger } from '@bitblit/ratchet-common/logger/logger';
|
|
|
2
2
|
import { AwsUtil } from '../util/aws-util.js';
|
|
3
3
|
import { CronUtil } from '../util/cron-util.js';
|
|
4
4
|
import { LambdaEventDetector } from '@bitblit/ratchet-aws/lambda/lambda-event-detector';
|
|
5
|
+
import { DateTime } from 'luxon';
|
|
5
6
|
export class CronEpsilonLambdaEventHandler {
|
|
6
7
|
_epsilon;
|
|
8
|
+
static CRON_EVENT_TIMESTAMP_MISMATCH_MAX_THRESHOLD_MINUTES = 5;
|
|
7
9
|
constructor(_epsilon) {
|
|
8
10
|
this._epsilon = _epsilon;
|
|
9
11
|
}
|
|
@@ -39,10 +41,11 @@ export class CronEpsilonLambdaEventHandler {
|
|
|
39
41
|
if (cronConfig && evt && evt.resources[0]) {
|
|
40
42
|
if (cronConfig.entries) {
|
|
41
43
|
if (background) {
|
|
44
|
+
const cronTimestampEpochMS = CronEpsilonLambdaEventHandler.getCronTimeToUse(evt);
|
|
42
45
|
const toEnqueue = [];
|
|
43
46
|
for (let i = 0; i < cronConfig.entries.length; i++) {
|
|
44
47
|
const smCronEntry = cronConfig.entries[i];
|
|
45
|
-
if (CronUtil.eventMatchesEntry(evt, smCronEntry, cronConfig)) {
|
|
48
|
+
if (CronUtil.eventMatchesEntry(evt, smCronEntry, cronConfig, cronTimestampEpochMS)) {
|
|
46
49
|
Logger.info('CRON Firing : %s', CronUtil.cronEntryName(smCronEntry));
|
|
47
50
|
const backgroundEntry = {
|
|
48
51
|
type: smCronEntry.backgroundTaskType,
|
|
@@ -70,5 +73,31 @@ export class CronEpsilonLambdaEventHandler {
|
|
|
70
73
|
}
|
|
71
74
|
return rval;
|
|
72
75
|
}
|
|
76
|
+
static getCronTimeToUse(evt, currentTimestampEpochMS = new Date().getTime()) {
|
|
77
|
+
let rval = currentTimestampEpochMS;
|
|
78
|
+
if (!evt?.time) {
|
|
79
|
+
return rval;
|
|
80
|
+
}
|
|
81
|
+
try {
|
|
82
|
+
const dateTimeOfEvent = DateTime.fromISO(evt.time);
|
|
83
|
+
if (!dateTimeOfEvent.isValid) {
|
|
84
|
+
throw new Error('Invalid date');
|
|
85
|
+
}
|
|
86
|
+
rval = dateTimeOfEvent.toMillis();
|
|
87
|
+
if (isNaN(rval)) {
|
|
88
|
+
throw new Error('Invalid date');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
Logger.warn('Could not parse event time : %s, using system time instead', evt.time);
|
|
93
|
+
return rval;
|
|
94
|
+
}
|
|
95
|
+
if (Math.abs(rval - currentTimestampEpochMS) >
|
|
96
|
+
CronEpsilonLambdaEventHandler.CRON_EVENT_TIMESTAMP_MISMATCH_MAX_THRESHOLD_MINUTES * 60 * 1000) {
|
|
97
|
+
Logger.warn('Event time and current time mismatch by more than %d minutes, using current time instead', CronEpsilonLambdaEventHandler.CRON_EVENT_TIMESTAMP_MISMATCH_MAX_THRESHOLD_MINUTES);
|
|
98
|
+
rval = currentTimestampEpochMS;
|
|
99
|
+
}
|
|
100
|
+
return rval;
|
|
101
|
+
}
|
|
73
102
|
}
|
|
74
103
|
//# sourceMappingURL=cron-epsilon-lambda-event-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron-epsilon-lambda-event-handler.js","sourceRoot":"","sources":["../../src/lambda-event-handler/cron-epsilon-lambda-event-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAM9C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;
|
|
1
|
+
{"version":3,"file":"cron-epsilon-lambda-event-handler.js","sourceRoot":"","sources":["../../src/lambda-event-handler/cron-epsilon-lambda-event-handler.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitblit/ratchet-epsilon-common",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.458-alpha",
|
|
4
4
|
"description": "Tiny adapter to simplify building API gateway Lambda APIS",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"bin": {
|
|
@@ -66,10 +66,10 @@
|
|
|
66
66
|
"@aws-sdk/client-sns": "3.624.0",
|
|
67
67
|
"@aws-sdk/client-sqs": "3.624.0",
|
|
68
68
|
"@aws-sdk/types": "3.609.0",
|
|
69
|
-
"@bitblit/ratchet-aws": "4.0.
|
|
70
|
-
"@bitblit/ratchet-common": "4.0.
|
|
71
|
-
"@bitblit/ratchet-misc": "4.0.
|
|
72
|
-
"@bitblit/ratchet-node-only": "4.0.
|
|
69
|
+
"@bitblit/ratchet-aws": "4.0.458-alpha",
|
|
70
|
+
"@bitblit/ratchet-common": "4.0.458-alpha",
|
|
71
|
+
"@bitblit/ratchet-misc": "4.0.458-alpha",
|
|
72
|
+
"@bitblit/ratchet-node-only": "4.0.458-alpha",
|
|
73
73
|
"@smithy/abort-controller": "3.1.1",
|
|
74
74
|
"@smithy/smithy-client": "3.1.12",
|
|
75
75
|
"@smithy/util-waiter": "3.1.2",
|
|
@@ -86,10 +86,10 @@
|
|
|
86
86
|
},
|
|
87
87
|
"peerDependencies": {
|
|
88
88
|
"@apollo/server": "^4.11.0",
|
|
89
|
-
"@bitblit/ratchet-aws": "4.0.
|
|
90
|
-
"@bitblit/ratchet-common": "4.0.
|
|
91
|
-
"@bitblit/ratchet-misc": "4.0.
|
|
92
|
-
"@bitblit/ratchet-node-only": "4.0.
|
|
89
|
+
"@bitblit/ratchet-aws": "4.0.458-alpha",
|
|
90
|
+
"@bitblit/ratchet-common": "4.0.458-alpha",
|
|
91
|
+
"@bitblit/ratchet-misc": "4.0.458-alpha",
|
|
92
|
+
"@bitblit/ratchet-node-only": "4.0.458-alpha",
|
|
93
93
|
"graphql": "^16.8.1"
|
|
94
94
|
},
|
|
95
95
|
"peerDependenciesMeta": {
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
},
|
|
103
103
|
"devDependencies": {
|
|
104
104
|
"@apollo/server": "4.11.0",
|
|
105
|
-
"@types/aws-lambda": "8.10.
|
|
105
|
+
"@types/aws-lambda": "8.10.145",
|
|
106
106
|
"aws-sdk-client-mock": "4.0.1",
|
|
107
107
|
"graphql": "16.9.0",
|
|
108
108
|
"graphql-tag": "2.12.6"
|