2
0
Files
cal/calcom/packages/features/tasker/tasker-factory.ts
2024-08-09 00:39:27 +02:00

28 lines
1.1 KiB
TypeScript

import { InternalTasker } from "./internal-tasker";
// import { RedisTasker } from "./redis-tasker";
import { type Tasker, type TaskerTypes } from "./tasker";
/**
* This is a factory class that creates Taskers.
* The TaskerFactory is useful when you want to use a different Tasker in different environments.
* For example, you can use the InternalTasker in development and the AWSSQSTasker in production.
*/
export class TaskerFactory {
createTasker(type?: TaskerTypes): Tasker {
// TODO: Add more alternative Taskers in the future:
// RedisTasker, TriggerDevTasker, TemporalIOTasker, AWSSQSTasker, etc.
// TODO: Uncomment the following line when RedisTasker is implemented.
// if (type === "redis") return new RedisTasker();
// For now, we only have the InternalTasker.
if (type === "internal") return new InternalTasker();
// Default to InternalTasker
return new InternalTasker();
}
}
/** Shorthand for getting the default Tasker */
export function getTasker() {
const taskerFactory = new TaskerFactory();
return taskerFactory.createTasker();
}