361446d79c
* Add cron to message queue interfaces * Add command to launch cron job * Add command to stop cron job * Update clean inactive workspaces job * Isolate cron mechanism * Code review returns * Remove useless object.assign * Add MessageQueuCronJobData interface * Rename cron job utils * Fix typing
28 lines
966 B
TypeScript
28 lines
966 B
TypeScript
import { QueueJobOptions } from 'src/integrations/message-queue/drivers/interfaces/job-options.interface';
|
|
import { MessageQueueJobData } from 'src/integrations/message-queue/interfaces/message-queue-job.interface';
|
|
|
|
import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants';
|
|
|
|
export interface MessageQueueDriver {
|
|
add<T extends MessageQueueJobData>(
|
|
queueName: MessageQueue,
|
|
jobName: string,
|
|
data: T,
|
|
options?: QueueJobOptions,
|
|
): Promise<void>;
|
|
work<T extends MessageQueueJobData>(
|
|
queueName: MessageQueue,
|
|
handler: ({ data, id }: { data: T; id: string }) => Promise<void> | void,
|
|
);
|
|
addCron<T extends MessageQueueJobData | undefined>(
|
|
queueName: MessageQueue,
|
|
jobName: string,
|
|
data: T,
|
|
pattern: string,
|
|
options?: QueueJobOptions,
|
|
);
|
|
removeCron(queueName: MessageQueue, jobName: string, pattern?: string);
|
|
stop?(): Promise<void>;
|
|
register?(queueName: MessageQueue): void;
|
|
}
|