任务注册中心(registry)
registry是任务注册中心,在整个生态圈内担任着各个组件注册节点的任务,任务注册中心实现方式是多样化的,目前包含:memory、zookeeper、redis、consul等。
通过idea、eclipse工具创建SpringBoot项目并添加如下依赖到pom.xml文件内。
com.github.hengboyspring-boot-starter-registry-memory{lastVersion}
在resources资源目录下添加application.yml配置文件,配置内容如下所示:
server: port: 9000hengboy: job: registry: # 任务注册中心节点注册方式 away: memory
任务调度器(schedule)
schedule是任务调度器,每一个任务的创建都是通过调度器进行分配执行,分配过程中根据消费节点的负载均衡策略配置进行不同消费者节点任务消费。
在生产任务时,也会根据调度器的负载均衡策略来进行筛选执行任务调度的调度器节点。
通过idea、eclipse工具创建SpringBoot项目并添加如下依赖到pom.xml文件内。
com.github.hengboy spring-boot-starter-schedule {lastVersion}
在resources资源目录下添加application.yml配置文件,配置内容如下所示:
server: port: 8081hengboy: job: registry: # 保持与任务注册中心节点注册方式一致即可 away: memory schedule: # 内存方式调度器处理任务队列以及任务日志的存储 job-store-type: memory
任务消费节点(consumer)
consumer是任务消费者执行节点,任务由consumer进行定义以及上报,当schedule调用消费者执行任务请求时,会自动根据jobKey来执行对应的任务逻辑方法。
通过idea、eclipse工具创建SpringBoot项目并添加如下依赖到pom.xml文件内。
com.github.hengboyspring-boot-starter-consumer{lastVersion}
在resources资源目录下添加application.yml配置文件,配置内容如下所示:
server: port: 8082hengboy: job: registry: # 保持与任务注册中心节点注册方式一致即可 away: memory
任务定义示例
我们来定义一个简单的Job,示例如下所示:
@Job(jobExecuteAway = JobExecuteAwayEnum.ONCE)public class TestJob implements MicroJob { /** * logger instance */ static Logger logger = LoggerFactory.getLogger(TestJob.class); @Override public JobExecuteResult execute(JobExecuteParam jobExecuteParam) throws JobException { logger.info("执行Key:{},执行参数:{}