Skip to content

Commit 06c3c10

Browse files
committed
Get max duration working on deployed runs
1 parent af34ddc commit 06c3c10

File tree

4 files changed

+33
-2
lines changed

4 files changed

+33
-2
lines changed

apps/webapp/app/v3/marqs/sharedQueueConsumer.server.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,8 @@ export class SharedQueueConsumer {
403403
startedAt: existingTaskRun.startedAt ?? new Date(),
404404
baseCostInCents: env.CENTS_PER_RUN,
405405
machinePreset: machinePresetFromConfig(backgroundTask.machineConfig ?? {}).name,
406+
maxDurationInSeconds:
407+
existingTaskRun.maxDurationInSeconds ?? backgroundTask.maxDurationInSeconds,
406408
},
407409
include: {
408410
runtimeEnvironment: true,
@@ -1067,6 +1069,7 @@ class SharedQueueTasks {
10671069
costInCents: taskRun.costInCents,
10681070
baseCostInCents: taskRun.baseCostInCents,
10691071
metadata,
1072+
maxDuration: taskRun.maxDurationInSeconds ?? undefined,
10701073
},
10711074
queue: {
10721075
id: queue.friendlyId,

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,13 @@ const zodIpc = new ZodIpcConnection({
338338
}
339339
});
340340

341-
const { result } = await executor.execute(execution, metadata, traceContext, measurement);
341+
const { result } = await executor.execute(
342+
execution,
343+
metadata,
344+
traceContext,
345+
measurement,
346+
signal
347+
);
342348

343349
const usageSample = usage.stop(measurement);
344350

references/hello-world/src/trigger/example.ts

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { logger, task, wait } from "@trigger.dev/sdk/v3";
1+
import { logger, task, usage, wait } from "@trigger.dev/sdk/v3";
22
import { setTimeout } from "timers/promises";
33

44
export const helloWorldTask = task({
@@ -42,3 +42,24 @@ export const childTask = task({
4242
}
4343
},
4444
});
45+
46+
export const maxDurationTask = task({
47+
id: "max-duration",
48+
run: async (payload: { sleepFor: number }, { signal }) => {
49+
await setTimeout(payload.sleepFor * 1000, { signal });
50+
51+
return usage.getCurrent();
52+
},
53+
});
54+
55+
export const maxDurationParentTask = task({
56+
id: "max-duration-parent",
57+
run: async (payload: { sleepFor?: number; maxDuration?: number }, { ctx, signal }) => {
58+
const result = await maxDurationTask.triggerAndWait(
59+
{ sleepFor: payload.sleepFor ?? 10 },
60+
{ maxDuration: payload.maxDuration ?? 600 }
61+
);
62+
63+
return result;
64+
},
65+
});

references/hello-world/trigger.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { defineConfig } from "@trigger.dev/sdk/v3";
33
export default defineConfig({
44
project: "proj_rrkpdguyagvsoktglnod",
55
logLevel: "log",
6+
maxDuration: 60,
67
retries: {
78
enabledInDev: true,
89
default: {

0 commit comments

Comments
 (0)