Skip to content

Commit 16a365f

Browse files
committed
add lazy attempts catalog entries
1 parent 839b349 commit 16a365f

File tree

2 files changed

+395
-1
lines changed

2 files changed

+395
-1
lines changed
Lines changed: 394 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,394 @@
1+
import { logger, task, wait } from "@trigger.dev/sdk/v3";
2+
3+
export const lazyImmediate = task({
4+
id: "lazy-immediate",
5+
run: async (payload: { forceError?: boolean }) => {
6+
logger.info("Log something", { payload });
7+
logger.info("Log something else", { payload });
8+
9+
if (payload.forceError) {
10+
throw new Error("Forced error");
11+
}
12+
13+
return {
14+
message: "This is a message",
15+
payload,
16+
};
17+
},
18+
});
19+
20+
export const lazyWait = task({
21+
id: "lazy-wait",
22+
run: async (payload: { forceError?: boolean; delayInSeconds?: number }) => {
23+
logger.info("Log something", { payload });
24+
25+
await wait.for({ seconds: payload.delayInSeconds ?? 1 });
26+
27+
logger.info("Log something else", { payload });
28+
29+
if (payload.forceError) {
30+
throw new Error("Forced error");
31+
}
32+
33+
return {
34+
message: "This is a message",
35+
payload,
36+
};
37+
},
38+
});
39+
40+
export const lazySingleDependency = task({
41+
id: "lazy-single-dependency",
42+
run: async (payload: {
43+
forceError?: boolean;
44+
forceChildError?: boolean;
45+
delayInSeconds?: number;
46+
}) => {
47+
logger.info("Log something", { payload });
48+
49+
const result = await lazyWait.triggerAndWait({
50+
delayInSeconds: payload.delayInSeconds,
51+
forceError: payload.forceChildError,
52+
});
53+
logger.info("Single result", { result });
54+
55+
logger.info("Log something else", { payload });
56+
57+
if (payload.forceError) {
58+
throw new Error("Forced error");
59+
}
60+
61+
return {
62+
message: "This is a message",
63+
payload,
64+
};
65+
},
66+
});
67+
68+
export const lazyBatchDependency = task({
69+
id: "lazy-batch-dependency",
70+
run: async (payload: {
71+
forceError?: boolean;
72+
forceChildError?: boolean;
73+
delayInSeconds?: number;
74+
}) => {
75+
logger.info("Log something", { payload });
76+
77+
const results = await lazyWait.batchTriggerAndWait([
78+
{ payload: { delayInSeconds: payload.delayInSeconds, forceError: payload.forceChildError } },
79+
{ payload: { delayInSeconds: payload.delayInSeconds, forceError: payload.forceChildError } },
80+
]);
81+
logger.info("Batch results", { results });
82+
83+
logger.info("Log something else", { payload });
84+
85+
if (payload.forceError) {
86+
throw new Error("Forced error");
87+
}
88+
89+
return {
90+
message: "This is a message",
91+
payload,
92+
};
93+
},
94+
});
95+
96+
export const lazyConsecutiveWaits = task({
97+
id: "lazy-consecutive-waits",
98+
run: async (payload: {
99+
forceError?: boolean;
100+
forceChildError?: boolean;
101+
delayInSeconds?: number;
102+
}) => {
103+
logger.info("Log something", { payload });
104+
105+
await wait.for({ seconds: payload.delayInSeconds ?? 1 });
106+
107+
logger.info("Log something else", { payload });
108+
109+
await wait.for({ seconds: payload.delayInSeconds ?? 1 });
110+
111+
logger.info("Log something else again", { payload });
112+
113+
if (payload.forceError) {
114+
throw new Error("Forced error");
115+
}
116+
117+
return {
118+
message: "This is a message",
119+
payload,
120+
};
121+
},
122+
});
123+
124+
export const lazyConsecutiveDependencies = task({
125+
id: "lazy-consecutive-dependencies",
126+
run: async (payload: {
127+
forceError?: boolean;
128+
forceChildError?: boolean;
129+
delayInSeconds?: number;
130+
}) => {
131+
logger.info("Log something", { payload });
132+
133+
const result = await lazyWait.triggerAndWait({
134+
delayInSeconds: payload.delayInSeconds,
135+
forceError: payload.forceChildError,
136+
});
137+
logger.info("Single result #1", { result });
138+
139+
logger.info("Log something else", { payload });
140+
141+
const result2 = await lazyWait.triggerAndWait({
142+
delayInSeconds: payload.delayInSeconds,
143+
forceError: payload.forceChildError,
144+
});
145+
logger.info("Single result #2", { result2 });
146+
147+
logger.info("Log something else again", { payload });
148+
149+
if (payload.forceError) {
150+
throw new Error("Forced error");
151+
}
152+
153+
return {
154+
message: "This is a message",
155+
payload,
156+
};
157+
},
158+
});
159+
160+
export const lazyConsecutiveBatchDependencies = task({
161+
id: "lazy-consecutive-batch-dependencies",
162+
run: async (payload: {
163+
forceError?: boolean;
164+
forceChildError?: boolean;
165+
delayInSeconds?: number;
166+
}) => {
167+
logger.info("Log something", { payload });
168+
169+
const results = await lazyWait.batchTriggerAndWait([
170+
{ payload: { delayInSeconds: payload.delayInSeconds, forceError: payload.forceChildError } },
171+
{ payload: { delayInSeconds: payload.delayInSeconds, forceError: payload.forceChildError } },
172+
]);
173+
logger.info("Batch results #1", { results });
174+
175+
logger.info("Log something else", { payload });
176+
177+
const results2 = await lazyWait.batchTriggerAndWait([
178+
{ payload: { delayInSeconds: payload.delayInSeconds, forceError: payload.forceChildError } },
179+
{ payload: { delayInSeconds: payload.delayInSeconds, forceError: payload.forceChildError } },
180+
]);
181+
logger.info("Batch results #2", { results2 });
182+
183+
logger.info("Log something else again", { payload });
184+
185+
if (payload.forceError) {
186+
throw new Error("Forced error");
187+
}
188+
189+
return {
190+
message: "This is a message",
191+
payload,
192+
};
193+
},
194+
});
195+
196+
export const lazyWaitThenSingleDependency = task({
197+
id: "lazy-wait-then-single-dependency",
198+
run: async (payload: {
199+
forceError?: boolean;
200+
forceChildError?: boolean;
201+
delayInSeconds?: number;
202+
}) => {
203+
logger.info("Log something", { payload });
204+
205+
await wait.for({ seconds: payload.delayInSeconds ?? 1 });
206+
207+
logger.info("Log something else", { payload });
208+
209+
const result = await lazyWait.triggerAndWait({
210+
delayInSeconds: payload.delayInSeconds,
211+
forceError: payload.forceChildError,
212+
});
213+
logger.info("Single result", { result });
214+
215+
logger.info("Log something else again", { payload });
216+
217+
if (payload.forceError) {
218+
throw new Error("Forced error");
219+
}
220+
221+
return {
222+
message: "This is a message",
223+
payload,
224+
};
225+
},
226+
});
227+
228+
export const lazyWaitThenBatchDependency = task({
229+
id: "lazy-wait-then-batch-dependency",
230+
run: async (payload: {
231+
forceError?: boolean;
232+
forceChildError?: boolean;
233+
delayInSeconds?: number;
234+
}) => {
235+
logger.info("Log something", { payload });
236+
237+
await wait.for({ seconds: payload.delayInSeconds ?? 1 });
238+
239+
logger.info("Log something else", { payload });
240+
241+
const results = await lazyWait.batchTriggerAndWait([
242+
{ payload: { delayInSeconds: payload.delayInSeconds, forceError: payload.forceChildError } },
243+
{ payload: { delayInSeconds: payload.delayInSeconds, forceError: payload.forceChildError } },
244+
]);
245+
logger.info("Batch results", { results });
246+
247+
logger.info("Log something else again", { payload });
248+
249+
if (payload.forceError) {
250+
throw new Error("Forced error");
251+
}
252+
253+
return {
254+
message: "This is a message",
255+
payload,
256+
};
257+
},
258+
});
259+
260+
export const lazySingleDependencyThenWait = task({
261+
id: "lazy-single-dependency-then-wait",
262+
run: async (payload: {
263+
forceError?: boolean;
264+
forceChildError?: boolean;
265+
delayInSeconds?: number;
266+
}) => {
267+
logger.info("Log something", { payload });
268+
269+
const result = await lazyWait.triggerAndWait({
270+
delayInSeconds: payload.delayInSeconds,
271+
forceError: payload.forceChildError,
272+
});
273+
logger.info("Single result", { result });
274+
275+
logger.info("Log something else", { payload });
276+
277+
await wait.for({ seconds: payload.delayInSeconds ?? 1 });
278+
279+
logger.info("Log something else again", { payload });
280+
281+
if (payload.forceError) {
282+
throw new Error("Forced error");
283+
}
284+
285+
return {
286+
message: "This is a message",
287+
payload,
288+
};
289+
},
290+
});
291+
292+
export const lazySingleDependencyThenBatch = task({
293+
id: "lazy-single-dependency-then-batch",
294+
run: async (payload: {
295+
forceError?: boolean;
296+
forceChildError?: boolean;
297+
delayInSeconds?: number;
298+
}) => {
299+
logger.info("Log something", { payload });
300+
301+
const result = await lazyWait.triggerAndWait({
302+
delayInSeconds: payload.delayInSeconds,
303+
forceError: payload.forceChildError,
304+
});
305+
logger.info("Single result", { result });
306+
307+
logger.info("Log something else", { payload });
308+
309+
const results = await lazyWait.batchTriggerAndWait([
310+
{ payload: { delayInSeconds: payload.delayInSeconds, forceError: payload.forceChildError } },
311+
{ payload: { delayInSeconds: payload.delayInSeconds, forceError: payload.forceChildError } },
312+
]);
313+
logger.info("Batch results", { results });
314+
315+
logger.info("Log something else again", { payload });
316+
317+
if (payload.forceError) {
318+
throw new Error("Forced error");
319+
}
320+
321+
return {
322+
message: "This is a message",
323+
payload,
324+
};
325+
},
326+
});
327+
328+
export const lazyBatchDependencyThenWait = task({
329+
id: "lazy-batch-dependency-then-wait",
330+
run: async (payload: {
331+
forceError?: boolean;
332+
forceChildError?: boolean;
333+
delayInSeconds?: number;
334+
}) => {
335+
logger.info("Log something", { payload });
336+
337+
const results = await lazyWait.batchTriggerAndWait([
338+
{ payload: { delayInSeconds: payload.delayInSeconds, forceError: payload.forceChildError } },
339+
{ payload: { delayInSeconds: payload.delayInSeconds, forceError: payload.forceChildError } },
340+
]);
341+
logger.info("Batch results", { results });
342+
343+
logger.info("Log something else", { payload });
344+
345+
await wait.for({ seconds: payload.delayInSeconds ?? 1 });
346+
347+
logger.info("Log something else again", { payload });
348+
349+
if (payload.forceError) {
350+
throw new Error("Forced error");
351+
}
352+
353+
return {
354+
message: "This is a message",
355+
payload,
356+
};
357+
},
358+
});
359+
360+
export const lazyBatchDependencyThenSingle = task({
361+
id: "lazy-batch-dependency-then-single",
362+
run: async (payload: {
363+
forceError?: boolean;
364+
forceChildError?: boolean;
365+
delayInSeconds?: number;
366+
}) => {
367+
logger.info("Log something", { payload });
368+
369+
const results = await lazyWait.batchTriggerAndWait([
370+
{ payload: { delayInSeconds: payload.delayInSeconds, forceError: payload.forceChildError } },
371+
{ payload: { delayInSeconds: payload.delayInSeconds, forceError: payload.forceChildError } },
372+
]);
373+
logger.info("Batch results", { results });
374+
375+
logger.info("Log something else", { payload });
376+
377+
const result = await lazyWait.triggerAndWait({
378+
delayInSeconds: payload.delayInSeconds,
379+
forceError: payload.forceChildError,
380+
});
381+
logger.info("Single result", { result });
382+
383+
logger.info("Log something else again", { payload });
384+
385+
if (payload.forceError) {
386+
throw new Error("Forced error");
387+
}
388+
389+
return {
390+
message: "This is a message",
391+
payload,
392+
};
393+
},
394+
});

0 commit comments

Comments
 (0)