千家信息网

如何正确的使用elastic-job

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇文章为大家展示了如何正确的使用elastic-job,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、Docker基础命令docker ps 列出当前正在
千家信息网最后更新 2025年12月03日如何正确的使用elastic-job

本篇文章为大家展示了如何正确的使用elastic-job,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

1、Docker基础命令
docker ps 列出当前正在运行的容器docker ps -a 列出全部的容器docker rm 容器ID 移除容器docker images 全部镜像运行zookeeper:docker run --name elasticzookeeper -p 2181:2181 -v /Users/abc/Desktop/WorkSpace/DockerData/elsaticzookeeper/data:/data/ -d zookeeperdocker run 运行一个容器  -name 给容器起个名字(标识,docker不能重复) -p 宿主端⼝口:容器器端⼝口  -v  宿主⽬目录:容器器⽬目录,挂载磁盘卷  -d 后台运行容器docker exec -it 容器id  bash  登录到容器中
2、elastic-job

我们可以参考官方的文档(有中文的),很详细有具体的使用,http://elasticjob.io/docs/elastic-job-lite/00-overview/

elastic-job是什么:

(摘自官网)Elastic-Job是一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服务;Job-Cloud采用自研Mesos Framework的解决方案,额外提供资源治理、应用分发以及进程隔离等功能(PS:我在这里只说Elastic-Job-Lite,因为Job-Cloud我没去研究)。 简单的说Elastic-Job-Lite就是一个分布式定时任务。

怎么使用elastic-job:
1、maven依赖:
  com.dangdang  elastic-job-lite-spring  2.1.5  com.dangdang  elastic-job-lite-core  2.1.5
2、简单的列子
2.1写简单的定时任务的代码
public class FirstSimpleJobDemo implements SimpleJob {    private static final Logger logger = LoggerFactory.getLogger(FirstSimpleJobDemo.class);    @Override    public void execute(ShardingContext shardingContext) {        int shardingTotalCount = shardingContext.getShardingTotalCount();        int item = shardingContext.getShardingItem();        String shardingParameter = shardingContext.getShardingParameter();        logger.info("shardingTotalCount:{},shardingParameter:{}",shardingTotalCount,shardingParameter);        logger.info("----- ThredID:{},当前分片项:{}",Thread.currentThread().getId(),item);    }}

只要实现SimpleJob类然后实现execute就可以了,在execute中写我们的定时任务处理逻辑。

(摘自官网)SimpleJob 意为简单实现,未经任何封装的类型。需实现SimpleJob接口。该接口仅提供单一方法用于覆盖,此方法将定时执行。与Quartz原生接口相似,但提供了弹性扩缩容和分片等功能。 看下官方的demo

public class MyElasticJob implements SimpleJob {        @Override    public void execute(ShardingContext context) {        switch (context.getShardingItem()) {            case 0:                 // do something by sharding item 0                break;            case 1:                 // do something by sharding item 1                break;            case 2:                 // do something by sharding item 2                break;            // case n: ...        }    }}

使用context.getShardingItem()使用多线程对不同的数据做不同的处理。

  • 我们还可以实现Dataflow类型作业用来处理流作业,Script类型作业,用来处理脚本作业。具体可以查看官方文档。

2.2定时任务的配置:

a)需要配置注册中心

代码如下:

其中参数的意思为:

  • server-lists 连接Zookeeper服务器的列表

  • namespace Zookeeper的命名空间

  • base-sleep-time-milliseconds 等待重试的间隔时间的初始值

  • max-sleep-time-milliseconds 等待重试的间隔时间的最大值

  • maxRetries 最大重试次数

其具体使用和参数的单位等请去官网的配置手册中查看。

b)配置任务

其中参数的意思为:

  • id 作业名称

  • class 作业实现类,需实现ElasticJob接口

  • registry-center-ref 注册中心Bean的引用,需引用reg:zookeeper的声明

  • sharding-total-count 作业分片总数

  • sharding-item-parameters 分片序列号和参数用等号分隔,多个键值对用逗号分隔 分片序列号从0开始,不可大于或等于作业分片总数

  • overwrite 本地配置是否可覆盖注册中心配置,如果可覆盖,每次启动作业都以本地配置为准

具体使用可以参考官方配置手册。需要注意,overwrite这个参数默认为false

3、运维平台:
  1. 从github把console的代码下载下来然后运行代码,然后输入http://localhost:8899/即可访问控制台。8899为默认端口号,可通过启动脚本输入-p自定义端口号。

  2. 进入平台,新建全局配置,填写注册中心名称(就是自己好辨识是哪个项目或者那块业务相关的),注册中心地址(zookeeper的地址),命名空间需要和定时任务项目中配置的一致,加完后点击连接按钮,连接上后可进行下步操作

  3. 进入作业操作->作业维度 显示每个定时任务,然后可以操作每个定时任务

  4. 进入作业操作->服务器维度 显示服务器的IP,运行任务的个数等。

上述内容就是如何正确的使用elastic-job,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

作业 容器 任务 配置 运行 参数 代码 官方 接口 处理 服务 分布式 就是 方案 服务器 类型 解决方案 不同 最大 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 电力生产安全和网络安全 怎么查看服务器型号 X86服务器虚拟云手机教程 孝感网络安全日 数据库自然连接合并两张表 人人商城 消息提醒数据库 苹果电脑MAC软件开发 网络安全考研最好考哪个学校 微信收款码服务器断开什么意思啊 软件开发免费资料微信公众号 vc逐条读取数据库 四川嵌入式软件开发收费报价表 数据库对象名无效怎么解决 网络技术学什么好 艾公子软件开发 明日之后圣尤纳服务器在哪里 数据库与网络有关系吗 网络安全方向适合女生不 募美互联网科技是做什么的 一登陆游戏就断开服务器 武昌区信息网络安全维护范围 重庆服务管理软件开发公司 为什么服务器会连接中断明日之后 网络工程考研网络安全方向 开国大典绘画软件开发 服务器 页面跳转 网络安全法对企业单位应向 工控制网络安全 全唐诗数据库分享 网络工程和网络技术
0