mirror of
https://github.com/PowerJob/PowerJob.git
synced 2025-07-17 00:00:04 +08:00
feat: define ProcessorFactory
This commit is contained in:
parent
d6f3ae6c44
commit
fbd75a6ec7
@ -0,0 +1,23 @@
|
||||
package tech.powerjob.worker.extension.processor;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.Accessors;
|
||||
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
|
||||
|
||||
/**
|
||||
* 处理器对象,理论上只需要返回 BasicProcessor,但为了扩展性还是选择封装为对象
|
||||
*
|
||||
* @author tjq
|
||||
* @since 2023/1/17
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@Accessors(chain = true)
|
||||
public class ProcessorBean {
|
||||
|
||||
/**
|
||||
* 真正用来执行逻辑的处理器对象
|
||||
*/
|
||||
private transient BasicProcessor processor;
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package tech.powerjob.worker.extension.processor;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 处理器定义
|
||||
*
|
||||
* @author tjq
|
||||
* @since 2023/1/17
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@Accessors(chain = true)
|
||||
public class ProcessorDefinition implements Serializable {
|
||||
|
||||
/**
|
||||
* 后台配置的处理器类型
|
||||
*/
|
||||
private String processorType;
|
||||
/**
|
||||
* 后台配置的处理器信息
|
||||
*/
|
||||
private String processorInfo;
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) {
|
||||
return true;
|
||||
}
|
||||
if (o == null || getClass() != o.getClass()) {
|
||||
return false;
|
||||
}
|
||||
ProcessorDefinition that = (ProcessorDefinition) o;
|
||||
return Objects.equals(processorType, that.processorType) && Objects.equals(processorInfo, that.processorInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(processorType, processorInfo);
|
||||
}
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package tech.powerjob.worker.extension.processor;
|
||||
|
||||
/**
|
||||
* 处理器工厂
|
||||
* 考虑到当前是一个百花齐放的生态,各种 IOC 框架层出不穷。PowerJob 决定在 4.3.0 剥离对 Spring 的强依赖,并允许开发者自定义 Bean 的初始化逻辑
|
||||
*
|
||||
* @author tjq
|
||||
* @since 2023/1/17
|
||||
*/
|
||||
public interface ProcessorFactory {
|
||||
|
||||
/**
|
||||
* 根据处理器定义构建处理器对象
|
||||
* 注意:Processor 为单例对象,即 PowerJob 对每一个 ProcessorBean 只调用一次 build 方法
|
||||
* @param processorDefinition 处理器定义
|
||||
* @return ProcessorBean
|
||||
*/
|
||||
ProcessorBean build(ProcessorDefinition processorDefinition);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user