WangHan
2024-09-12 d5855a4926926698b740bc6c7ba489de47adb68b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package tech.powerjob.worker.extension.processor;
 
import tech.powerjob.common.enums.ProcessorType;
 
import java.util.Set;
 
/**
 * 处理器工厂
 * 考虑到当前是一个百花齐放的生态,各种 IOC 框架层出不穷。PowerJob 决定在 4.3.0 剥离对 Spring 的强依赖,并允许开发者自定义 Bean 的初始化逻辑
 * 不知道怎么用的话,可以看看官方提供的 3 个默认实现,比如对接第三方 IOC 框架就类似于 BuiltInSpringProcessorFactory
 *
 * @author tjq
 * @since 2023/1/17
 */
public interface ProcessorFactory {
 
    /**
     * 支持的处理器类型,类型不匹配则跳过该 ProcessorFactory 的加载逻辑
     * 对应的是控制台的'处理器类型' TAB,不做任何定制的情况下,取值范围为 {@link ProcessorType#name()}
     * @return 支持的处理器类型
     */
    Set<String> supportTypes();
 
    /**
     * 根据处理器定义构建处理器对象
     * 注意:Processor 为单例对象,即 PowerJob 对每一个 ProcessorBean 只调用一次 build 方法
     * @param processorDefinition 处理器定义
     * @return null or ProcessorBean
     */
    ProcessorBean build(ProcessorDefinition processorDefinition);
}