@vendure/core
Version:
A modern, headless ecommerce framework
35 lines (34 loc) • 1.35 kB
TypeScript
import { UpdateScheduledTaskInput } from '@vendure/common/lib/generated-types';
import { Cron } from 'croner';
import { Injector } from '../../common';
import { ScheduledTask } from '../../scheduler/scheduled-task';
import { SchedulerStrategy, TaskReport } from '../../scheduler/scheduler-strategy';
/**
* @description
* The default {@link SchedulerStrategy} implementation that uses the database to
* execute scheduled tasks. This strategy is configured when you use the
* {@link DefaultSchedulerPlugin}.
*
* @since 3.3.0
* @docsCategory scheduled-tasks
*/
export declare class DefaultSchedulerStrategy implements SchedulerStrategy {
private connection;
private injector;
private intervalRef;
private readonly tasks;
private pluginOptions;
private runningTasks;
init(injector: Injector): void;
destroy(): Promise<void>;
registerTask(task: ScheduledTask): void;
executeTask(task: ScheduledTask): (job?: Cron) => Promise<void>;
getTasks(): Promise<TaskReport[]>;
getTask(id: string): Promise<TaskReport | undefined>;
updateTask(input: UpdateScheduledTaskInput): Promise<TaskReport>;
triggerTask(task: ScheduledTask): Promise<void>;
private checkForManuallyTriggeredTasks;
private entityToReport;
private ensureAllTasksAreRegistered;
private ensureTaskIsRegistered;
}