1. 程式人生 > >Elastic-job入門介紹

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.dangdang</groupId>
        <artifactId>elastic-job-core</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
            <groupId>com.dangdang</groupId>
            <artifactId
>
elastic-job-spring</artifactId> <version>1.1.1</version> </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中

<?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="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"/>

配置檔案的相關引數說明
這裡寫圖片描述

這裡寫圖片描述