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