first commit
This commit is contained in:
27
calcom/packages/features/tasker/tasker-factory.ts
Normal file
27
calcom/packages/features/tasker/tasker-factory.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
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();
|
||||
}
|
||||
Reference in New Issue
Block a user