ha-job-scheduler
Version:
Highly available cron job scheduler using Redis
30 lines (29 loc) • 1.12 kB
TypeScript
import { Job } from 'node-schedule';
export declare type Delayed = (id: string, data: Uint8Array, scheduleFor: number | Date) => Promise<boolean>;
export interface Deferred<A> {
done: (value: A) => void;
promise: Promise<A>;
}
export declare type DelayedFn = (data: Uint8Array[]) => Promise<void> | void;
export declare type StopFn = () => Promise<void>;
export declare type GracefulShutdown = {
schedule: Job;
stop: StopFn;
};
export interface RecurringOptions {
lockExpireMs?: number;
persistScheduledMs?: number;
}
export declare type Rule = string | {
rule: string;
tz: string;
};
export declare type RunFn = (date: Date) => Promise<void> | void;
export declare type Recurring = (id: string, rule: Rule, runFn: RunFn, options?: RecurringOptions) => GracefulShutdown;
export interface DelayedOptions {
rule?: Rule;
lockExpireMs?: number;
limit?: number;
}
export declare type RunDelayed = (id: string, runFn: DelayedFn, options?: DelayedOptions) => GracefulShutdown;
export declare type Events = 'recurring:schedule' | 'recurring:run' | 'delayed:schedule' | 'delayed:run';