elasticjob-基本配置及任务

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

  • 引入架包

        <!-- 引入elastic-job-lite核心模块 -->
        <dependency>
            <groupId>com.dangdang</groupId>
            <artifactId>elastic-job-lite-core</artifactId>
            <version>2.1.5</version>
        </dependency>
        <!-- 使用Spring配置启动 -->
        <dependency>
            <groupId>com.dangdang</groupId>
            <artifactId>elastic-job-lite-spring</artifactId>
            <version>2.1.5</version>
        </dependency>
  • 简单作业开发

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:reg="http://www.dangdang.com/schema/ddframe/reg" xmlns:job="http://www.dangdang.com/schema/ddframe/job"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.dangdang.com/schema/ddframe/reg http://www.dangdang.com/schema/ddframe/reg/reg.xsd
                        http://www.dangdang.com/schema/ddframe/job http://www.dangdang.com/schema/ddframe/job/job.xsd">
    <!--配置作业注册中心 -->
    <reg:zookeeper id="regCenter" server-lists="10.23.24.33:2181,10.23.24.34:2181"
          namespace="test-qa" base-sleep-time-milliseconds="1000" max-sleep-time-milliseconds="3000" max-retries="3"/>

    <!--简单定时任务-->
    <job:simple id="userSyncJobDemo" class="com.example.demo.job.simple.UserSyncSimpleJob" registry-center-ref="regCenter"
                sharding-total-count="4" cron="0 0/1 * * * ? " description="zjs-UserSyncSimpleJob" overwrite="true"/>

</beans>
public class UserSyncSimpleJob implements SimpleJob {
    @Override
    public void execute(ShardingContext shardingContext) {
        int a=shardingContext.getShardingItem();
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(Thread.currentThread().getId()+","+sf.format(new Date())+"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"+a);
    }
}
  • Dataflow作业开发

    <job:dataflow id="userSyncDataFlowJob" class="com.example.demo.job.simple.UserSyncDataFlowJob"
                  registry-center-ref="regCenter"
                  sharding-total-count="4" cron="0 0/1 * * * ?" description="zjs-dataFlowDemo" overwrite="true"/>
public class UserSyncDataFlowJob implements DataflowJob<String> {

    @Override
    public List<String> fetchData(ShardingContext shardingContext) {
        //获取用户的数据列表,返回给processData
        return null;
    }

    @Override
    public void processData(ShardingContext shardingContext, List<String> list) {
        //对每条数据的处理逻辑
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    小迈克阅读 8,144评论 1 3
  • 1-------- 走进前端 2-------- jQuery 3-------- CSS 4-------- A...
    依依玖玥阅读 6,859评论 0 34
  • 前端知识结构https://github.com/JacksonTian/fks Web前端开发大系概览https...
    柴东啊阅读 4,709评论 0 10
  • 人的情绪真是花样百出,什么样的都有,我们在生活中的表现也是。有时候自嗨起来都能上天,难过深沉起来就和忧郁症患者差不...
    雪_snow阅读 2,833评论 0 0
  • 今天中午,我和弟弟一放学就为妈妈今天吃什么,妈妈说:今天吃米线 ,弟弟说:妈妈今天我们上饭店吃米线,妈妈就说:今...
    张家翔阅读 847评论 0 1