欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > ElasticJob个人总结

ElasticJob个人总结

2024/11/16 12:16:50 来源:https://blog.csdn.net/qq_42068856/article/details/142350766  浏览:    关键词:ElasticJob个人总结

一、什么是ElasticJob

ElasticJob是一个轻量的、无中心化的分布式定时任务解决方案。

二、ElasticJob有何特点

1.无中心化

ElasticJob的特点是没有一个固定的主服务器。而是所有服务器都可以通过选举成为主服务器,当主服务器宕机时,重新选举出一个新的主服务器。因此不用担心主服务器宕机后导致其他服务器的业务停止的情况。

2.弹性调度

ElasticJob有任务分片的概念,可以将任务分成多片,然后在分布式环境下运行,每台任务服务器实际只运行分配给该服务器的分片。随着服务器的增加或宕机,ElasticJob 会近乎实时的感知服务器数量的变更,从而重新为分布式的任务服务器分配更加合理的任务分片项,使得任务可以随着资源的增加而提升效率。

3.失效转移

开启失效转移功能后。当作业执行过程中服务器宕机,失效转移允许将该次未完成的任务在另一作业节点上补偿执行。

4.错过任务重执行

ElasticJob 不允许作业在同一时间内叠加执行。 当作业的执行时长超过其运行间隔,错过任务重执行能够保证作业在完成上次的任务后继续执行逾期的作业。

三、入门Demo

如果你已经有一个SpringBoot集成的项目和zookeeper环境,那么你可以非常快速的给你的项目集成Elasticjob

1.环境要求

Java 8及以上版本
Maven 3.5.0及以上版本
ZooKeeper 3.6.0及以上版本

2.添加依赖

给你的项目添加elasticjob-lite-spring-boot-starter依赖

<dependency><groupId>org.apache.shardingsphere.elasticjob</groupId><artifactId>elasticjob-lite-spring-boot-starter</artifactId><version>3.0.0</version>
</dependency>
3.作业开发

然后直接就可以开始你的定时任务开发了!

package org.example.job;import org.apache.shardingsphere.elasticjob.api.ShardingContext;
import org.apache.shardingsphere.elasticjob.simple.job.SimpleJob;
import org.springframework.stereotype.Component;@Component
public class HelloWorldJob implements SimpleJob {@Overridepublic void execute(ShardingContext shardingContext) {System.out.println("执行定时任务");}
}

配置

elasticjob:regCenter:#zk地址和端口号serverLists: xxx.xxx.xxx.xxx:xxxxnamespace: hello-world-elasticjob# 等待重试的间隔时间的初始值   单位:毫秒base-sleep-time-milliseconds: 10000# 等待重试的间隔时间的最大值max-sleep-time-milliseconds: 30000# 最大重试次数max-retries: 3# 会话超时时间 单位: 毫秒session-timeout-milliseconds: 600000# 连接超时时间 单位: 毫秒connection-timeout-milliseconds: 600000jobs:#任务名称HelloWorldJob:elasticJobClass: org.example.job.HelloWorldJobcron: 0/5 * * * * ?#分片数量shardingTotalCount: 1

附上官方文档地址:
ElasticJob官方文档

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com