Elastic-job入門介紹
阿新 • • 發佈:2019-01-01
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"/>
配置檔案的相關引數說明