elasticjob 当当的分布式定时任务管理

elasticjob官网:http://elasticjob.io/index_zh.html

https://blog.csdn.net/a13627210064/article/details/81201800

https://www.jianshu.com/p/8411504c53a3

https://blog.csdn.net/yangliuhbhd/article/details/80902212

 

一 管理平台安装

1.在github  https://github.com/elasticjob/elastic-job-lite

上导入项目到本地

 

 2.http://localhost:8899/# 访问默认的端口

 

3. 注册中心 zk 安装配置上 

注意:命名空间一定是配置定时任务中命名的一致

 

 

 

4. 可以看到相应的作业任务 

 

 

二 项目中配置定时任务

1.pom添加依赖

<!-- 引入elastic-job-lite springboot核心模块 -->
        <dependency>
            <groupId>com.github.kuhn-he</groupId>
            <artifactId>elastic-job-lite-spring-boot-starter</artifactId>
            <version>2.1.5</version>
        </dependency>

2.yml 中配置参数

elaticjob:
  zookeeper:
    server-lists: localhost:2181
    namespace: my-project-name

 

3.建一个任务类 LateInfoTask

@Slf4j
@Component
//springboot整合主要就是注解了。这里指定一下相关配偶。服务链接到zk上。 控制台配置之后就看得到啦,之后也可以在控制台上手动修改一些相关配置
@ElasticSimpleJob(cron = "0/3 * * * * ? *", jobName = "lateInfoTask", shardingTotalCount = 2, jobParameter = "测试参数", shardingItemParameters = "0=A,1=B")

public class LateInfoTask implements SimpleJob {

    @Autowired
    private UserService userService;


    @Override
    public void execute(ShardingContext shardingContext) {
        List<User> allUser = userService.findAllUser(1, 10);
        for (User user : allUser) {
            log.info("对象:{}", user);
        }

        System.out.println(new Date() + " job名称 = " + shardingContext.getJobName()
                + "分片数量" + shardingContext.getShardingTotalCount()
                + "当前分区" + shardingContext.getShardingItem()
                + "当前分区名称" + shardingContext.getShardingParameter()
                + "当前自定义参数" + shardingContext.getJobParameter() + "============start=================");

//        原文:https://blog.csdn.net/u013018994/article/details/76212229

    }
}

 

 
 

 

后期整理 cloud 相关的 job .......

转载于:https://www.cnblogs.com/qinls/p/10478833.html

Elastic-Job是ddframe中dd-job的作业模块中分离出来的分布式弹性作业框架。去掉了和dd-job中的监控和ddframe接入规范部分。该项目基于成熟的开源产品Quartz和Zookeeper及其客户端Curator进行二次开发。       ddframe其他模块也有可独立开源的部分,之前当当曾开源过dd-soa的基石模块DubboX。elastic-job和ddframe关系见下图Elastic-Job 主要功能定时任务: 基于成熟的定时任务作业框架Quartz cron表达式执行定时任务。作业注册中心: 基于Zookeeper和其客户端Curator实现的全局作业注册控制中心。用于注册,控制和协调分布式作业执行。作业分片: 将一个任务分片成为多个小任务项在多服务器上同时执行。弹性扩容缩容: 运行中的作业服务器崩溃,或新增加n台作业服务器,作业框架将在下次作业执行前重新分片,不影响当前作业执行。支持多种作业执行模式: 支持OneOff,Perpetual和SequencePerpetual三种作业模式。失效转移: 运行中的作业服务器崩溃不会导致重新分片,只会在下次作业启动时分片。启用失效转移功能可以在本次作业执行过程中,监测其他作业服务器空闲,抓取未完成的孤儿分片项执行。运行时状态收集: 监控作业运行时状态,统计最近一段时间处理的数据成功和失败数量,记录作业上次运行开始时间,结束时间和下次运行时间。作业停止,恢复和禁用:用于操作作业启停,并可以禁止某作业运行(上线时常用)。被错过执行的作业重触发:自动记录错过执行的作业,并在上次作业完成后自动触发。可参考Quartz的misfire。多线程快速处理数据:使用多线程处理抓取到的数据,提升吞吐量。幂等性:重复作业任务项判定,不重复执行已运行的作业任务项。由于开启幂等性需要监听作业运行状态,对瞬时反复运行的作业对性能有较大影响。容错处理:作业服务器与Zookeeper服务器通信失败则立即停止作业运行,防止作业注册中心将失效的分片分项配给其他作业服务器,而当前作业服务器仍在执行任务,导致重复执行。Spring支持:支持spring容器,自定义命名空间,支持占位符。运维平台:提供运维界面,可以管理作业和注册中心。相关文档下载Release Notes1.0.2接口变更声明何为分布式作业?目录结构说明使用步骤开发指南使用限制运维平台阅读源码编译问题说明实现原理作业分片策略监控快速上手(感谢第三方志愿者 泽伟@心探索科技 提供文档)InfoQ新闻Elastic-Job Wiki (由社区志愿者自由编辑的) 标签:作业调度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值