Skip to content

Commit 12425b8

Browse files
committed
Making flushing a safer operation
1 parent f564845 commit 12425b8

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

packages/cli-v3/src/entryPoints/managed-run-worker.ts

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,12 +472,35 @@ const zodIpc = new ZodIpcConnection({
472472
async function flushAll(timeoutInMs: number = 10_000) {
473473
const now = performance.now();
474474

475-
await Promise.all([
475+
const results = await Promise.allSettled([
476476
flushUsage(timeoutInMs),
477477
flushTracingSDK(timeoutInMs),
478478
flushMetadata(timeoutInMs),
479479
]);
480480

481+
const successfulFlushes = results
482+
.filter((result) => result.status === "fulfilled")
483+
.map((result) => result.value.flushed);
484+
const failedFlushes = ["usage", "tracingSDK", "runMetadata"].filter(
485+
(flushed) => !successfulFlushes.includes(flushed)
486+
);
487+
488+
if (failedFlushes.length > 0) {
489+
console.error(`Failed to flush ${failedFlushes.join(", ")}`);
490+
}
491+
492+
const errorMessages = results
493+
.filter((result) => result.status === "rejected")
494+
.map((result) => result.reason);
495+
496+
if (errorMessages.length > 0) {
497+
console.error(errorMessages.join("\n"));
498+
}
499+
500+
for (const flushed of successfulFlushes) {
501+
console.log(`Flushed ${flushed} successfully`);
502+
}
503+
481504
const duration = performance.now() - now;
482505

483506
console.log(`Flushed all in ${duration}ms`);
@@ -491,6 +514,11 @@ async function flushUsage(timeoutInMs: number = 10_000) {
491514
const duration = performance.now() - now;
492515

493516
console.log(`Flushed usage in ${duration}ms`);
517+
518+
return {
519+
flushed: "usage",
520+
durationMs: duration,
521+
};
494522
}
495523

496524
async function flushTracingSDK(timeoutInMs: number = 10_000) {
@@ -501,6 +529,11 @@ async function flushTracingSDK(timeoutInMs: number = 10_000) {
501529
const duration = performance.now() - now;
502530

503531
console.log(`Flushed tracingSDK in ${duration}ms`);
532+
533+
return {
534+
flushed: "tracingSDK",
535+
durationMs: duration,
536+
};
504537
}
505538

506539
async function flushMetadata(timeoutInMs: number = 10_000) {
@@ -511,6 +544,11 @@ async function flushMetadata(timeoutInMs: number = 10_000) {
511544
const duration = performance.now() - now;
512545

513546
console.log(`Flushed runMetadata in ${duration}ms`);
547+
548+
return {
549+
flushed: "runMetadata",
550+
durationMs: duration,
551+
};
514552
}
515553

516554
const managedWorkerRuntime = new ManagedRuntimeManager(zodIpc, true);

references/d3-chat/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"start": "next start",
99
"lint": "next lint",
1010
"dev:trigger": "trigger dev",
11+
"deploy": "trigger deploy",
1112
"tunnel": "ngrok http --url=d3-demo.ngrok.dev 3000",
1213
"python:install-requirements": "uv pip sync requirements.txt",
1314
"python:compile-requirements": "uv pip compile requirements.in -o requirements.txt",

0 commit comments

Comments
 (0)