Skip to content

Commit 623f3d5

Browse files
committed
feat(scheduled-tasks): ✨ add timezone for tasks with pattern
1 parent bf7bc8b commit 623f3d5

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

packages/scheduled-tasks/src/lib/ScheduledTaskHandler.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ export class ScheduledTaskHandler {
6565
every: options.interval!
6666
}
6767
: {
68-
pattern: options.pattern!
68+
pattern: options.pattern!,
69+
tz: options.timezone
6970
}
7071
};
7172
}
@@ -87,6 +88,7 @@ export class ScheduledTaskHandler {
8788
}
8889
: {
8990
pattern: piece.pattern!,
91+
timezone: piece.timezone,
9092
customJobOptions: piece.customJobOptions
9193
})
9294
}

packages/scheduled-tasks/src/lib/structures/ScheduledTask.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@ import type { JobsOptions } from 'bullmq';
99
export abstract class ScheduledTask<Options extends ScheduledTask.Options = ScheduledTask.Options> extends Piece<Options, 'scheduled-tasks'> {
1010
public readonly interval: number | null;
1111
public readonly pattern: string | null;
12+
public readonly timezone: string;
1213
public readonly customJobOptions?: ScheduledTaskCustomJobOptions;
1314

1415
public constructor(context: ScheduledTask.LoaderContext, options: ScheduledTaskOptions) {
1516
super(context, options);
1617
this.interval = options.interval ?? null;
1718
this.pattern = options.pattern ?? null;
1819
this.customJobOptions = options.customJobOptions;
20+
this.timezone = options.timezone ?? 'UTC';
1921
}
2022

2123
public abstract run(payload: unknown): Awaitable<unknown>;
@@ -37,6 +39,12 @@ export interface ScheduledTaskOptions extends Piece.Options {
3739
* Custom options to pass to the job scheduler.
3840
*/
3941
customJobOptions?: ScheduledTaskCustomJobOptions;
42+
43+
/**
44+
* The timezone to use for the task.
45+
* @default 'UTC'
46+
*/
47+
timezone?: string | null;
4048
}
4149

4250
/**

packages/scheduled-tasks/src/lib/types/ScheduledTaskTypes.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ export type ScheduledTaskListRepeatedReturnType = ReturnType<BullClient['getRepe
4242
export type ScheduledTasksTaskOptions = {
4343
repeated: boolean;
4444
} & (
45-
| { delay: number; interval?: never; pattern?: never; customJobOptions?: ScheduledTaskCustomJobOptions }
46-
| { delay?: never; interval: number; pattern?: never; customJobOptions?: ScheduledTaskCustomJobOptions }
47-
| { delay?: never; interval?: never; pattern: string; customJobOptions?: ScheduledTaskCustomJobOptions }
45+
| { delay: number; interval?: never; pattern?: never; timezone?: never; customJobOptions?: ScheduledTaskCustomJobOptions }
46+
| { delay?: never; interval: number; pattern?: never; timezone?: never; customJobOptions?: ScheduledTaskCustomJobOptions }
47+
| { delay?: never; interval?: never; pattern: string; timezone: string; customJobOptions?: ScheduledTaskCustomJobOptions }
4848
);
4949

5050
/**

0 commit comments

Comments
 (0)