ElasticJob
介绍
优势
-
分布式任务调度
任务可分片执行,大型任务可以拆解成多个分片,多台机器运行计算
-
作业高可用
作业设置分片之后,未获得分片的机器变成主从关系,一旦执行作业的服务器崩溃,等待执行的服务器将会在下次作业启动时替补执行。开启失效转移功能效果更好,可以保证在本次作业执行时崩溃,备机立即启动替补执行。
-
作业控制台
控制台可以一目了然看到所有的定时任务执行状态,定时时间。可以在控制台修改,触发,终止定时任务
-
作业运行历史
框架结构
业务应用依赖ElasticJob Jar运行,共享同一个连接池和内存。
外部依赖Zookeeper做分布式调度协调。
Console单独运行,依赖Zookeeper做任务状态监控
如何使用
开发单独ElasticJob组件Common。
示例代码:
@Job(cron = "0 0/2 * * * ? ", description = "填写该定时任务的功能")
public class BatchApplicationJob implements SimpleJob {
@Autowired
private ScaffoldService scaffoldService;
@Override
public void execute(ShardingContext shardingContext) {
log.info("=============开始BatchApplicationJob==============");
// DoSomething
log.info("============= 结束BatchApplicationJob===============");
}
}
继承SimpleJob 实现execute方法。
添加@Job注解 配置对应执行时间和任务说明。