UNPKG

ha-job-scheduler

Version:

Highly available cron job scheduler using Redis

30 lines (29 loc) 1.12 kB
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';