@trigger.dev/core 3.3.9 → 3.3.11
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/commonjs/logger.js +4 -0
- package/dist/commonjs/logger.js.map +1 -1
- package/dist/commonjs/v3/apiClient/index.d.ts +3 -0
- package/dist/commonjs/v3/apiClient/index.js +3 -0
- package/dist/commonjs/v3/apiClient/index.js.map +1 -1
- package/dist/commonjs/v3/apiClient/runStream.d.ts +1 -0
- package/dist/commonjs/v3/apiClient/runStream.js +3 -0
- package/dist/commonjs/v3/apiClient/runStream.js.map +1 -1
- package/dist/commonjs/v3/apiClient/stream.d.ts +1 -0
- package/dist/commonjs/v3/apiClient/stream.js +3 -0
- package/dist/commonjs/v3/apiClient/stream.js.map +1 -1
- package/dist/commonjs/v3/config.d.ts +73 -1
- package/dist/commonjs/v3/errors.d.ts +15 -1
- package/dist/commonjs/v3/errors.js +39 -1
- package/dist/commonjs/v3/errors.js.map +1 -1
- package/dist/commonjs/v3/links.d.ts +3 -0
- package/dist/commonjs/v3/links.js +3 -0
- package/dist/commonjs/v3/links.js.map +1 -1
- package/dist/commonjs/v3/otel/tracingSDK.d.ts +2 -0
- package/dist/commonjs/v3/otel/tracingSDK.js +51 -0
- package/dist/commonjs/v3/otel/tracingSDK.js.map +1 -1
- package/dist/commonjs/v3/runtime/devRuntimeManager.d.ts +1 -0
- package/dist/commonjs/v3/runtime/devRuntimeManager.js +36 -30
- package/dist/commonjs/v3/runtime/devRuntimeManager.js.map +1 -1
- package/dist/commonjs/v3/runtime/index.d.ts +4 -0
- package/dist/commonjs/v3/runtime/index.js +4 -0
- package/dist/commonjs/v3/runtime/index.js.map +1 -1
- package/dist/commonjs/v3/runtime/preventMultipleWaits.d.ts +1 -0
- package/dist/commonjs/v3/runtime/preventMultipleWaits.js +31 -0
- package/dist/commonjs/v3/runtime/preventMultipleWaits.js.map +1 -0
- package/dist/commonjs/v3/runtime/prodRuntimeManager.d.ts +1 -0
- package/dist/commonjs/v3/runtime/prodRuntimeManager.js +41 -33
- package/dist/commonjs/v3/runtime/prodRuntimeManager.js.map +1 -1
- package/dist/commonjs/v3/schemas/api.d.ts +29 -5
- package/dist/commonjs/v3/schemas/api.js +2 -0
- package/dist/commonjs/v3/schemas/api.js.map +1 -1
- package/dist/commonjs/v3/schemas/common.d.ts +25 -24
- package/dist/commonjs/v3/schemas/common.js +1 -0
- package/dist/commonjs/v3/schemas/common.js.map +1 -1
- package/dist/commonjs/v3/schemas/messages.d.ts +123 -123
- package/dist/commonjs/v3/semanticInternalAttributes.d.ts +1 -0
- package/dist/commonjs/v3/semanticInternalAttributes.js +1 -0
- package/dist/commonjs/v3/semanticInternalAttributes.js.map +1 -1
- package/dist/commonjs/v3/types/tasks.d.ts +7 -3
- package/dist/commonjs/v3/types/tasks.js.map +1 -1
- package/dist/commonjs/v3/workers/taskExecutor.js +4 -0
- package/dist/commonjs/v3/workers/taskExecutor.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/logger.js +4 -0
- package/dist/esm/logger.js.map +1 -1
- package/dist/esm/v3/apiClient/index.d.ts +3 -0
- package/dist/esm/v3/apiClient/index.js +3 -0
- package/dist/esm/v3/apiClient/index.js.map +1 -1
- package/dist/esm/v3/apiClient/runStream.d.ts +1 -0
- package/dist/esm/v3/apiClient/runStream.js +3 -0
- package/dist/esm/v3/apiClient/runStream.js.map +1 -1
- package/dist/esm/v3/apiClient/stream.d.ts +1 -0
- package/dist/esm/v3/apiClient/stream.js +3 -0
- package/dist/esm/v3/apiClient/stream.js.map +1 -1
- package/dist/esm/v3/config.d.ts +73 -1
- package/dist/esm/v3/errors.d.ts +15 -1
- package/dist/esm/v3/errors.js +36 -0
- package/dist/esm/v3/errors.js.map +1 -1
- package/dist/esm/v3/links.d.ts +3 -0
- package/dist/esm/v3/links.js +3 -0
- package/dist/esm/v3/links.js.map +1 -1
- package/dist/esm/v3/otel/tracingSDK.d.ts +2 -0
- package/dist/esm/v3/otel/tracingSDK.js +51 -0
- package/dist/esm/v3/otel/tracingSDK.js.map +1 -1
- package/dist/esm/v3/runtime/devRuntimeManager.d.ts +1 -0
- package/dist/esm/v3/runtime/devRuntimeManager.js +36 -30
- package/dist/esm/v3/runtime/devRuntimeManager.js.map +1 -1
- package/dist/esm/v3/runtime/index.d.ts +4 -0
- package/dist/esm/v3/runtime/index.js +4 -0
- package/dist/esm/v3/runtime/index.js.map +1 -1
- package/dist/esm/v3/runtime/preventMultipleWaits.d.ts +1 -0
- package/dist/esm/v3/runtime/preventMultipleWaits.js +28 -0
- package/dist/esm/v3/runtime/preventMultipleWaits.js.map +1 -0
- package/dist/esm/v3/runtime/prodRuntimeManager.d.ts +1 -0
- package/dist/esm/v3/runtime/prodRuntimeManager.js +41 -33
- package/dist/esm/v3/runtime/prodRuntimeManager.js.map +1 -1
- package/dist/esm/v3/schemas/api.d.ts +29 -5
- package/dist/esm/v3/schemas/api.js +3 -1
- package/dist/esm/v3/schemas/api.js.map +1 -1
- package/dist/esm/v3/schemas/common.d.ts +25 -24
- package/dist/esm/v3/schemas/common.js +1 -0
- package/dist/esm/v3/schemas/common.js.map +1 -1
- package/dist/esm/v3/schemas/messages.d.ts +123 -123
- package/dist/esm/v3/semanticInternalAttributes.d.ts +1 -0
- package/dist/esm/v3/semanticInternalAttributes.js +1 -0
- package/dist/esm/v3/semanticInternalAttributes.js.map +1 -1
- package/dist/esm/v3/types/tasks.d.ts +7 -3
- package/dist/esm/v3/types/tasks.js.map +1 -1
- package/dist/esm/v3/workers/taskExecutor.js +5 -1
- package/dist/esm/v3/workers/taskExecutor.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@ import { TracerProvider } from "@opentelemetry/api";
|
|
|
2
2
|
import { type Instrumentation } from "@opentelemetry/instrumentation";
|
|
3
3
|
import { DetectorSync, IResource, Resource, ResourceAttributes, ResourceDetectionConfig } from "@opentelemetry/resources";
|
|
4
4
|
import { LoggerProvider } from "@opentelemetry/sdk-logs";
|
|
5
|
+
import { SpanExporter } from "@opentelemetry/sdk-trace-node";
|
|
5
6
|
declare class AsyncResourceDetector implements DetectorSync {
|
|
6
7
|
private _promise;
|
|
7
8
|
private _resolver?;
|
|
@@ -16,6 +17,7 @@ export type TracingSDKConfig = {
|
|
|
16
17
|
forceFlushTimeoutMillis?: number;
|
|
17
18
|
resource?: IResource;
|
|
18
19
|
instrumentations?: Instrumentation[];
|
|
20
|
+
exporters?: SpanExporter[];
|
|
19
21
|
diagLogLevel?: TracingDiagnosticLogLevel;
|
|
20
22
|
};
|
|
21
23
|
export declare class TracingSDK {
|
|
@@ -58,6 +58,7 @@ class TracingSDK {
|
|
|
58
58
|
})
|
|
59
59
|
.merge(new resources_1.Resource({
|
|
60
60
|
[semantic_conventions_1.SemanticResourceAttributes.CLOUD_PROVIDER]: "trigger.dev",
|
|
61
|
+
[semantic_conventions_1.SemanticResourceAttributes.SERVICE_NAME]: (0, getEnv_js_1.getEnvVar)("OTEL_SERVICE_NAME") ?? "trigger.dev",
|
|
61
62
|
[semanticInternalAttributes_js_1.SemanticInternalAttributes.TRIGGER]: true,
|
|
62
63
|
[semanticInternalAttributes_js_1.SemanticInternalAttributes.CLI_VERSION]: version_js_1.VERSION,
|
|
63
64
|
}))
|
|
@@ -87,6 +88,17 @@ class TracingSDK {
|
|
|
87
88
|
maxQueueSize: parseInt((0, getEnv_js_1.getEnvVar)("OTEL_SPAN_MAX_QUEUE_SIZE") ?? "512"),
|
|
88
89
|
})
|
|
89
90
|
: new sdk_trace_node_1.SimpleSpanProcessor(spanExporter)));
|
|
91
|
+
const externalTraceId = crypto.randomUUID();
|
|
92
|
+
for (const exporter of config.exporters ?? []) {
|
|
93
|
+
traceProvider.addSpanProcessor((0, getEnv_js_1.getEnvVar)("OTEL_BATCH_PROCESSING_ENABLED") === "1"
|
|
94
|
+
? new sdk_trace_node_1.BatchSpanProcessor(new ExternalSpanExporterWrapper(exporter, externalTraceId), {
|
|
95
|
+
maxExportBatchSize: parseInt((0, getEnv_js_1.getEnvVar)("OTEL_SPAN_MAX_EXPORT_BATCH_SIZE") ?? "64"),
|
|
96
|
+
scheduledDelayMillis: parseInt((0, getEnv_js_1.getEnvVar)("OTEL_SPAN_SCHEDULED_DELAY_MILLIS") ?? "200"),
|
|
97
|
+
exportTimeoutMillis: parseInt((0, getEnv_js_1.getEnvVar)("OTEL_SPAN_EXPORT_TIMEOUT_MILLIS") ?? "30000"),
|
|
98
|
+
maxQueueSize: parseInt((0, getEnv_js_1.getEnvVar)("OTEL_SPAN_MAX_QUEUE_SIZE") ?? "512"),
|
|
99
|
+
})
|
|
100
|
+
: new sdk_trace_node_1.SimpleSpanProcessor(new ExternalSpanExporterWrapper(exporter, externalTraceId)));
|
|
101
|
+
}
|
|
90
102
|
traceProvider.register();
|
|
91
103
|
(0, instrumentation_1.registerInstrumentations)({
|
|
92
104
|
instrumentations: config.instrumentations ?? [],
|
|
@@ -155,4 +167,43 @@ function setLogLevel(level) {
|
|
|
155
167
|
}
|
|
156
168
|
api_1.diag.setLogger(new api_1.DiagConsoleLogger(), diagLogLevel);
|
|
157
169
|
}
|
|
170
|
+
class ExternalSpanExporterWrapper {
|
|
171
|
+
underlyingExporter;
|
|
172
|
+
externalTraceId;
|
|
173
|
+
constructor(underlyingExporter, externalTraceId) {
|
|
174
|
+
this.underlyingExporter = underlyingExporter;
|
|
175
|
+
this.externalTraceId = externalTraceId;
|
|
176
|
+
}
|
|
177
|
+
transformSpan(span) {
|
|
178
|
+
if (span.attributes[semanticInternalAttributes_js_1.SemanticInternalAttributes.SPAN_PARTIAL]) {
|
|
179
|
+
// Skip partial spans
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
const spanContext = span.spanContext();
|
|
183
|
+
return {
|
|
184
|
+
...span,
|
|
185
|
+
spanContext: () => ({ ...spanContext, traceId: this.externalTraceId }),
|
|
186
|
+
parentSpanId: span.attributes[semanticInternalAttributes_js_1.SemanticInternalAttributes.SPAN_ATTEMPT]
|
|
187
|
+
? undefined
|
|
188
|
+
: span.parentSpanId,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
export(spans, resultCallback) {
|
|
192
|
+
try {
|
|
193
|
+
const modifiedSpans = spans.map(this.transformSpan.bind(this));
|
|
194
|
+
this.underlyingExporter.export(modifiedSpans.filter(Boolean), resultCallback);
|
|
195
|
+
}
|
|
196
|
+
catch (e) {
|
|
197
|
+
console.error(e);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
shutdown() {
|
|
201
|
+
return this.underlyingExporter.shutdown();
|
|
202
|
+
}
|
|
203
|
+
forceFlush() {
|
|
204
|
+
return this.underlyingExporter.forceFlush
|
|
205
|
+
? this.underlyingExporter.forceFlush()
|
|
206
|
+
: Promise.resolve();
|
|
207
|
+
}
|
|
208
|
+
}
|
|
158
209
|
//# sourceMappingURL=tracingSDK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracingSDK.js","sourceRoot":"","sources":["../../../../src/v3/otel/tracingSDK.ts"],"names":[],"mappings":";;;AAAA,4CAA2F;AAC3F,sDAA+C;AAC/C,oFAAyE;AACzE,sFAA4E;AAC5E,oEAAgG;AAChG,wDAQkC;AAClC,sDAIiC;AACjC,
|
|
1
|
+
{"version":3,"file":"tracingSDK.js","sourceRoot":"","sources":["../../../../src/v3/otel/tracingSDK.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export declare class DevRuntimeManager implements RuntimeManager {
|
|
|
10
10
|
reject: (err?: any) => void;
|
|
11
11
|
}>;
|
|
12
12
|
_pendingCompletionNotifications: Map<string, TaskRunExecutionResult>;
|
|
13
|
+
_preventMultipleWaits: <T>(cb: () => Promise<T>) => Promise<T>;
|
|
13
14
|
disable(): void;
|
|
14
15
|
waitForDuration(ms: number): Promise<void>;
|
|
15
16
|
waitUntil(date: Date): Promise<void>;
|
|
@@ -3,52 +3,58 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DevRuntimeManager = void 0;
|
|
4
4
|
const run_metadata_api_js_1 = require("../run-metadata-api.js");
|
|
5
5
|
const timers_js_1 = require("../utils/timers.js");
|
|
6
|
+
const preventMultipleWaits_js_1 = require("./preventMultipleWaits.js");
|
|
6
7
|
class DevRuntimeManager {
|
|
7
8
|
_taskWaits = new Map();
|
|
8
9
|
_batchWaits = new Map();
|
|
9
10
|
_pendingCompletionNotifications = new Map();
|
|
11
|
+
_preventMultipleWaits = (0, preventMultipleWaits_js_1.preventMultipleWaits)();
|
|
10
12
|
disable() {
|
|
11
13
|
// do nothing
|
|
12
14
|
}
|
|
13
15
|
async waitForDuration(ms) {
|
|
14
|
-
await (0, timers_js_1.unboundedTimeout)(ms);
|
|
16
|
+
await this._preventMultipleWaits(() => (0, timers_js_1.unboundedTimeout)(ms));
|
|
15
17
|
}
|
|
16
18
|
async waitUntil(date) {
|
|
17
19
|
return this.waitForDuration(date.getTime() - Date.now());
|
|
18
20
|
}
|
|
19
21
|
async waitForTask(params) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
return this._preventMultipleWaits(async () => {
|
|
23
|
+
const pendingCompletion = this._pendingCompletionNotifications.get(params.id);
|
|
24
|
+
if (pendingCompletion) {
|
|
25
|
+
this._pendingCompletionNotifications.delete(params.id);
|
|
26
|
+
return pendingCompletion;
|
|
27
|
+
}
|
|
28
|
+
const promise = new Promise((resolve) => {
|
|
29
|
+
this._taskWaits.set(params.id, { resolve });
|
|
30
|
+
});
|
|
31
|
+
await this.#tryFlushMetadata();
|
|
32
|
+
return await promise;
|
|
27
33
|
});
|
|
28
|
-
await this.#tryFlushMetadata();
|
|
29
|
-
return await promise;
|
|
30
34
|
}
|
|
31
35
|
async waitForBatch(params) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
36
|
+
return this._preventMultipleWaits(async () => {
|
|
37
|
+
if (!params.runs.length) {
|
|
38
|
+
return Promise.resolve({ id: params.id, items: [] });
|
|
39
|
+
}
|
|
40
|
+
const promise = Promise.all(params.runs.map((runId) => {
|
|
41
|
+
return new Promise((resolve, reject) => {
|
|
42
|
+
const pendingCompletion = this._pendingCompletionNotifications.get(runId);
|
|
43
|
+
if (pendingCompletion) {
|
|
44
|
+
this._pendingCompletionNotifications.delete(runId);
|
|
45
|
+
resolve(pendingCompletion);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
this._taskWaits.set(runId, { resolve });
|
|
49
|
+
});
|
|
50
|
+
}));
|
|
51
|
+
await this.#tryFlushMetadata();
|
|
52
|
+
const results = await promise;
|
|
53
|
+
return {
|
|
54
|
+
id: params.id,
|
|
55
|
+
items: results,
|
|
56
|
+
};
|
|
57
|
+
});
|
|
52
58
|
}
|
|
53
59
|
resumeTask(completion, runId) {
|
|
54
60
|
const wait = this._taskWaits.get(runId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devRuntimeManager.js","sourceRoot":"","sources":["../../../../src/v3/runtime/devRuntimeManager.ts"],"names":[],"mappings":";;;AAAA,gEAAqD;AAMrD,kDAAsD;
|
|
1
|
+
{"version":3,"file":"devRuntimeManager.js","sourceRoot":"","sources":["../../../../src/v3/runtime/devRuntimeManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { BatchTaskRunExecutionResult, TaskRunContext, TaskRunExecutionResult } from "../schemas/index.js";
|
|
2
2
|
import { type RuntimeManager } from "./manager.js";
|
|
3
|
+
/**
|
|
4
|
+
* All state must be inside the RuntimeManager, do NOT store it on this class.
|
|
5
|
+
* This is because of the "dual package hazard", this can be bundled multiple times.
|
|
6
|
+
*/
|
|
3
7
|
export declare class RuntimeAPI {
|
|
4
8
|
#private;
|
|
5
9
|
private static _instance?;
|
|
@@ -6,6 +6,10 @@ const globals_js_1 = require("../utils/globals.js");
|
|
|
6
6
|
const noopRuntimeManager_js_1 = require("./noopRuntimeManager.js");
|
|
7
7
|
const usage_api_js_1 = require("../usage-api.js");
|
|
8
8
|
const NOOP_RUNTIME_MANAGER = new noopRuntimeManager_js_1.NoopRuntimeManager();
|
|
9
|
+
/**
|
|
10
|
+
* All state must be inside the RuntimeManager, do NOT store it on this class.
|
|
11
|
+
* This is because of the "dual package hazard", this can be bundled multiple times.
|
|
12
|
+
*/
|
|
9
13
|
class RuntimeAPI {
|
|
10
14
|
static _instance;
|
|
11
15
|
constructor() { }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/runtime/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,QAAQ,GAAG,SAAS,CAAC;AAO3B,oDAAkF;AAElF,mEAA6D;AAC7D,kDAAwC;AAExC,MAAM,oBAAoB,GAAG,IAAI,0CAAkB,EAAE,CAAC;AAEtD,MAAa,UAAU;IACb,MAAM,CAAC,SAAS,CAAc;IAEtC,gBAAuB,CAAC;IAEjB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,EAAE,CAAC;QACpC,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEM,eAAe,CAAC,EAAU;QAC/B,OAAO,oBAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;IAEM,SAAS,CAAC,IAAU;QACzB,OAAO,oBAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEM,WAAW,CAAC,MAA2C;QAC5D,OAAO,oBAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/E,CAAC;IAEM,YAAY,CAAC,MAInB;QACC,OAAO,oBAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAChF,CAAC;IAEM,uBAAuB,CAAC,cAA8B;QAC3D,OAAO,IAAA,2BAAc,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAClD,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,CAAC;QACpC,IAAA,6BAAgB,EAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAA,sBAAS,EAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC;IACrD,CAAC;CACF;AA7CD,gCA6CC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/runtime/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,QAAQ,GAAG,SAAS,CAAC;AAO3B,oDAAkF;AAElF,mEAA6D;AAC7D,kDAAwC;AAExC,MAAM,oBAAoB,GAAG,IAAI,0CAAkB,EAAE,CAAC;AAEtD;;;GAGG;AACH,MAAa,UAAU;IACb,MAAM,CAAC,SAAS,CAAc;IAEtC,gBAAuB,CAAC;IAEjB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,EAAE,CAAC;QACpC,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEM,eAAe,CAAC,EAAU;QAC/B,OAAO,oBAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;IAEM,SAAS,CAAC,IAAU;QACzB,OAAO,oBAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEM,WAAW,CAAC,MAA2C;QAC5D,OAAO,oBAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/E,CAAC;IAEM,YAAY,CAAC,MAInB;QACC,OAAO,oBAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAChF,CAAC;IAEM,uBAAuB,CAAC,cAA8B;QAC3D,OAAO,IAAA,2BAAc,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAClD,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,CAAC;QACpC,IAAA,6BAAgB,EAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAA,sBAAS,EAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC;IACrD,CAAC;CACF;AA7CD,gCA6CC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function preventMultipleWaits(): <T>(cb: () => Promise<T>) => Promise<T>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.preventMultipleWaits = preventMultipleWaits;
|
|
4
|
+
const errors_js_1 = require("../errors.js");
|
|
5
|
+
const common_js_1 = require("../schemas/common.js");
|
|
6
|
+
const concurrentWaitErrorMessage = "Parallel waits are not supported, e.g. using Promise.all() around our wait functions.";
|
|
7
|
+
function preventMultipleWaits() {
|
|
8
|
+
let isExecutingWait = false;
|
|
9
|
+
return async (cb) => {
|
|
10
|
+
if (isExecutingWait) {
|
|
11
|
+
console.error(concurrentWaitErrorMessage);
|
|
12
|
+
throw new errors_js_1.InternalError({
|
|
13
|
+
code: common_js_1.TaskRunErrorCodes.TASK_DID_CONCURRENT_WAIT,
|
|
14
|
+
message: concurrentWaitErrorMessage,
|
|
15
|
+
skipRetrying: true,
|
|
16
|
+
showStackTrace: false,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
isExecutingWait = true;
|
|
20
|
+
try {
|
|
21
|
+
//delay calling the callback by one tick
|
|
22
|
+
//(to ensure the first wait doesn't checkpoint before the second is called)
|
|
23
|
+
await Promise.resolve();
|
|
24
|
+
return await cb();
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
isExecutingWait = false;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=preventMultipleWaits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preventMultipleWaits.js","sourceRoot":"","sources":["../../../../src/v3/runtime/preventMultipleWaits.ts"],"names":[],"mappings":";;AAMA,oDAyBC;AA/BD,4CAA6C;AAC7C,oDAAyD;AAEzD,MAAM,0BAA0B,GAC9B,uFAAuF,CAAC;AAE1F,SAAgB,oBAAoB;IAClC,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,OAAO,KAAK,EAAK,EAAoB,EAAc,EAAE;QACnD,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC1C,MAAM,IAAI,yBAAa,CAAC;gBACtB,IAAI,EAAE,6BAAiB,CAAC,wBAAwB;gBAChD,OAAO,EAAE,0BAA0B;gBACnC,YAAY,EAAE,IAAI;gBAClB,cAAc,EAAE,KAAK;aACtB,CAAC,CAAC;QACL,CAAC;QAED,eAAe,GAAG,IAAI,CAAC;QAEvB,IAAI,CAAC;YACH,wCAAwC;YACxC,2EAA2E;YAC3E,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,eAAe,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -18,6 +18,7 @@ export declare class ProdRuntimeManager implements RuntimeManager {
|
|
|
18
18
|
resolve: (value: void) => void;
|
|
19
19
|
reject: (err?: any) => void;
|
|
20
20
|
} | undefined;
|
|
21
|
+
_preventMultipleWaits: <T>(cb: () => Promise<T>) => Promise<T>;
|
|
21
22
|
constructor(ipc: ExecutorToWorkerProcessConnection, options?: ProdRuntimeManagerOptions);
|
|
22
23
|
disable(): void;
|
|
23
24
|
waitForDuration(ms: number): Promise<void>;
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ProdRuntimeManager = void 0;
|
|
4
4
|
const clock_api_js_1 = require("../clock-api.js");
|
|
5
|
+
const preventMultipleWaits_js_1 = require("./preventMultipleWaits.js");
|
|
5
6
|
class ProdRuntimeManager {
|
|
6
7
|
ipc;
|
|
7
8
|
options;
|
|
8
9
|
_taskWaits = new Map();
|
|
9
10
|
_batchWaits = new Map();
|
|
10
11
|
_waitForDuration;
|
|
12
|
+
_preventMultipleWaits = (0, preventMultipleWaits_js_1.preventMultipleWaits)();
|
|
11
13
|
constructor(ipc, options = {}) {
|
|
12
14
|
this.ipc = ipc;
|
|
13
15
|
this.options = options;
|
|
@@ -16,16 +18,18 @@ class ProdRuntimeManager {
|
|
|
16
18
|
// do nothing
|
|
17
19
|
}
|
|
18
20
|
async waitForDuration(ms) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
return this._preventMultipleWaits(async () => {
|
|
22
|
+
const now = Date.now();
|
|
23
|
+
const resume = new Promise((resolve, reject) => {
|
|
24
|
+
this._waitForDuration = { resolve, reject };
|
|
25
|
+
});
|
|
26
|
+
await this.ipc.send("WAIT_FOR_DURATION", {
|
|
27
|
+
ms,
|
|
28
|
+
now,
|
|
29
|
+
waitThresholdInMs: this.waitThresholdInMs,
|
|
30
|
+
});
|
|
31
|
+
await resume;
|
|
27
32
|
});
|
|
28
|
-
await resume;
|
|
29
33
|
}
|
|
30
34
|
resumeAfterDuration() {
|
|
31
35
|
if (!this._waitForDuration) {
|
|
@@ -40,35 +44,39 @@ class ProdRuntimeManager {
|
|
|
40
44
|
return this.waitForDuration(date.getTime() - Date.now());
|
|
41
45
|
}
|
|
42
46
|
async waitForTask(params) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
return this._preventMultipleWaits(async () => {
|
|
48
|
+
const promise = new Promise((resolve) => {
|
|
49
|
+
this._taskWaits.set(params.id, { resolve });
|
|
50
|
+
});
|
|
51
|
+
await this.ipc.send("WAIT_FOR_TASK", {
|
|
52
|
+
friendlyId: params.id,
|
|
53
|
+
});
|
|
54
|
+
const result = await promise;
|
|
55
|
+
clock_api_js_1.clock.reset();
|
|
56
|
+
return result;
|
|
48
57
|
});
|
|
49
|
-
const result = await promise;
|
|
50
|
-
clock_api_js_1.clock.reset();
|
|
51
|
-
return result;
|
|
52
58
|
}
|
|
53
59
|
async waitForBatch(params) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
+
return this._preventMultipleWaits(async () => {
|
|
61
|
+
if (!params.runs.length) {
|
|
62
|
+
return Promise.resolve({ id: params.id, items: [] });
|
|
63
|
+
}
|
|
64
|
+
const promise = Promise.all(params.runs.map((runId) => {
|
|
65
|
+
return new Promise((resolve, reject) => {
|
|
66
|
+
this._taskWaits.set(runId, { resolve });
|
|
67
|
+
});
|
|
68
|
+
}));
|
|
69
|
+
await this.ipc.send("WAIT_FOR_BATCH", {
|
|
70
|
+
batchFriendlyId: params.id,
|
|
71
|
+
runFriendlyIds: params.runs,
|
|
60
72
|
});
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
73
|
+
const results = await promise;
|
|
74
|
+
clock_api_js_1.clock.reset();
|
|
75
|
+
return {
|
|
76
|
+
id: params.id,
|
|
77
|
+
items: results,
|
|
78
|
+
};
|
|
65
79
|
});
|
|
66
|
-
const results = await promise;
|
|
67
|
-
clock_api_js_1.clock.reset();
|
|
68
|
-
return {
|
|
69
|
-
id: params.id,
|
|
70
|
-
items: results,
|
|
71
|
-
};
|
|
72
80
|
}
|
|
73
81
|
resumeTask(completion) {
|
|
74
82
|
const wait = this._taskWaits.get(completion.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prodRuntimeManager.js","sourceRoot":"","sources":["../../../../src/v3/runtime/prodRuntimeManager.ts"],"names":[],"mappings":";;;AAAA,kDAAwC;
|
|
1
|
+
{"version":3,"file":"prodRuntimeManager.js","sourceRoot":"","sources":["../../../../src/v3/runtime/prodRuntimeManager.ts"],"names":[],"mappings":"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"}
|