Skip to content

Commit 29ca09e

Browse files
committed
Fixes #611: intervalTriggers of >10 never starting
1 parent 375b788 commit 29ca09e

File tree

4 files changed

+26
-1
lines changed

4 files changed

+26
-1
lines changed

apps/webapp/app/services/schedules/nextScheduledEvent.server.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export class NextScheduledEventService {
3636

3737
const scheduleTime = calculateNextScheduledEvent(
3838
schedule.data,
39-
scheduleSource.lastEventTimestamp
39+
scheduleSource.lastEventTimestamp ?? scheduleSource.createdAt
4040
);
4141

4242
logger.debug("enqueuing scheduled event", {
@@ -67,6 +67,7 @@ export class NextScheduledEventService {
6767
},
6868
data: {
6969
workerJobId: workerJob.id,
70+
nextEventTimestamp: scheduleTime,
7071
},
7172
});
7273

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- AlterTable
2+
ALTER TABLE "ScheduleSource" ADD COLUMN "nextEventTimestamp" TIMESTAMP(3);

packages/database/prisma/schema.prisma

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1049,6 +1049,7 @@ model ScheduleSource {
10491049
dispatcherId String
10501050
10511051
lastEventTimestamp DateTime?
1052+
nextEventTimestamp DateTime?
10521053
10531054
workerJobId String?
10541055

references/job-catalog/src/schedules.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,27 @@ client.defineJob({
3131
},
3232
});
3333

34+
client.defineJob({
35+
id: "schedule-example-2",
36+
name: "Schedule Example 2",
37+
version: "1.0.0",
38+
enabled: true,
39+
trigger: intervalTrigger({
40+
seconds: 60 * 30, // 30 minutes
41+
}),
42+
run: async (payload, io, ctx) => {
43+
await io.runTask("task-example-1", async () => {
44+
return {
45+
message: "Hello World",
46+
};
47+
});
48+
49+
await io.wait("wait-1", 1);
50+
51+
await io.logger.info("Hello World", { ctx });
52+
},
53+
});
54+
3455
const resend = new Resend({
3556
id: "resend-client",
3657
apiKey: process.env.RESEND_API_KEY!,

0 commit comments

Comments
 (0)