Elastic-job入门介绍

Elastic-Job是一个分布式的定时任务框架
基于成熟的定时任务作业框架Quartz cron表达式执行定时任务 相对于Quartz它增加了任务分片。这样能有效的防止单节点部署项目带来的种种不便

入门案例
本案例基于Springmvc 和 maven 如果你在本地测试需要首先自己安装好zookeeper因为注册中心是zookeeper 采用测试用例测试的时候 需要两台不同ip的机器去启动job 因为ElasticJob默认的分片机制是根据ip来分片的 如果ip相同 它会默认为一台服务器
首先
在maven项目的pom.xml文件中增加Elastic-Job的相关依赖的jar包代码如下(Springmvc的jar包依赖就不在这里赘述了)

<dependency>
        <groupId>com.dangdanggroupId>
        <artifactId>elastic-job-coreartifactId>
        <version>1.1.1version>
    dependency>
    <dependency>
            <groupId>com.dangdanggroupId>
            <artifactId>elastic-job-springartifactId>
            <version>1.1.1version>
        dependency>

然后
构建好相关的job类 这里我是采用的SimpleJob类型的 所以实现的是SimpleJob接口

public class MyElasticJob extends AbstractSimpleElasticJob {
    @Override
    public void process(JobExecutionMultipleShardingContext arg0) {
        // TODO Auto-generated method stub
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");


        System.out.println("date : " + sdf.format(new Date()) + " , 第" + arg0.getShardingItems() + "个分片 " + arg0.getJobParameter() + "  +");

    }

}

public class TestElastic {
    public static void main(String[] args) {
        ApplicationContext context1 = new ClassPathXmlApplicationContext("hun-test/app.xml");
    }
}

然后
配置好job.xml,你也可以配置到Spring的application.xml文件中为了配置文件的相对干净我配置到job.xml中


<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="192.168.40.201:2181" namespace="dd-job" base-sleep-time-milliseconds="1000" max-sleep-time-milliseconds="3000" max-retries="3" />

    
    <job:simple id="oneOffElasticJob" class="job.MyElasticJob" registry-center-ref="regCenter" cron="0/5 * * * * ?" sharding-total-count="2" sharding-item-parameters="0=0,1=1" overwrite="true" />
beans>

最后
将job.xml引入到Spring的配置文件中(通常是application.xml 也可能是你自己起的其他名字) 注意两个配置文件的路径

<import resource="job.xml"/>

配置文件的相关参数说明
Elastic-job入门介绍_第1张图片

Elastic-job入门介绍_第2张图片

相关博客链接
http://dangdangdotcom.github.io/elastic-job/post/user_guide/lite/dev_guide/

你可能感兴趣的:(ElasticJob,java定时任务,分布式)