日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

elastic-job 的简单使用

發(fā)布時間:2024/4/17 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 elastic-job 的简单使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

說明:這個是使用2.1.5版本

  elastic-job是當當開源的的的定時任務,使用也是很簡單的,可以解決數(shù)據(jù)量的大的時候可以分片執(zhí)行,多應用節(jié)點部署時候不會重復執(zhí)行。

  是通過zookeeper作為控制中心,進行任務分配。

?

使用手冊:http://elasticjob.io/docs/elastic-job-lite/02-guide/config-manual/

分片原理:https://www.cnblogs.com/haoxinyue/p/6919375.html

?

一. 安裝elastic-job控制臺

  下載源碼:https://github.com/elasticjob/elastic-job-lite

  (1) 找到elastic-job-lite 下面的elastic-job-lite-console,然后在這個文件下執(zhí)行mvn打包??

mvn?clean?install?-Dmaven.test.skip=true??

  (2)得到elastic-job-lite-console-2.1.5.tar.gz。并上傳到linux服務器下,并且解壓,

在bin文件夾下執(zhí)行nohup ./start.sh & (-p 可以指定端口號)?端口是8899?,瀏覽器打開:ip:8899就可以訪問控制臺了,如下圖:

? ? ?  ?

   

?已經(jīng)配置過注冊中心的界面

   

?

二, zookeeper安裝

? ? 參考:

    https://blog.csdn.net/m290345792/article/details/52576890

    https://www.cnblogs.com/wangmingshun/p/7745808.html

?

三,實現(xiàn)job

  (1)使用maven 引入jar包

<!-- 當當job--> <dependency><groupId>com.dangdang</groupId><artifactId>elastic-job-lite-core</artifactId><version>2.1.5</version> </dependency> <dependency><groupId>com.dangdang</groupId><artifactId>elastic-job-lite-spring</artifactId><version>2.1.5</version> </dependency> <!-- 當當job-->

  (2)編寫一個測試job

  job功能要 實現(xiàn)SimpleJob這個類,然后重寫execute方法,在這個方法中編寫job的業(yè)務邏輯,例如

public class SimpleJobDemo2 implements SimpleJob {@Overridepublic void execute(ShardingContext shardingContext) {System.out.println(String.format("------Thread ID: %s, 任務總片數(shù): %s, 當前分片項: %s",Thread.currentThread().getId(), shardingContext.getShardingTotalCount(), shardingContext.getShardingItem()));/*** 實際開發(fā)中,有了任務總片數(shù)和當前分片項,查詢選擇數(shù)據(jù)進行執(zhí)行* */} }

?

  例如分片執(zhí)行的:

public class MyElasticJob implements SimpleJob {@Overridepublic void execute(ShardingContext context) {switch (context.getShardingItem()) {case 0: // do something by sharding item 0break;case 1: // do something by sharding item 1break;case 2: // do something by sharding item 2break;// case n: ... }} }

?

?

?

?(3) Spring 配置(更多配置參數(shù)請參考 使用手冊)  

//數(shù)據(jù)庫jndi配置,執(zhí)行job 的時候會插入表,并且生成執(zhí)行記 <bean id="elasticJobLog" class=""org.springframeork.jndi.JndiObjectFactoryBean"><property name="jniName"><value>${db.jndiName}</value></property> </bean><!--配置作業(yè)注冊中心 --> /** * server-lists : 連接Zookeeper服務器的列表 包括IP地址和端口號 多個地址用逗號分隔 如: host1:2181,host2:2181 * namespace :Zookeeper的命名空間 * base-sleep-time-milliseconds: 等待重試的間隔時間的初始值 單位:毫秒 * max-sleep-time-milliseconds: 等待重試的間隔時間的最大值 單位:毫秒 * max-retries : 最大嘗試次數(shù) * **/ <reg:zookeeper id="regCenter" server-lists="XXX.XXX.XXX.X:2181" namespace="hmap-job" base-sleep-time-milliseconds="1000" max-sleep-time-milliseconds="3000" max-retries="3" /><!-- 配置作業(yè) 測試使用--> /** * id: 任務的唯一標示 * event-trace-rdb-data-source : job要操作的數(shù)據(jù)庫(可以不設置) * class:job 所在的位置 * registry-center-ref : 要指定的注冊中心
* cron : job 觸發(fā)的cron表達式
* sharding-total-count : 作業(yè)分片總數(shù)
* sharding-item-parameters :分片序列號和參數(shù)用等號分隔,多個鍵值對用逗號分隔 分片序列號從0開始,不可大于或等于作業(yè)分片總數(shù) 如: 0=A,1=B
*
*/<job:simple id="simpleJobDemo2" event-trace-rdb-data-source="elasticJobLog" class="hmap.assist.elasticJob.SimpleJobDemo2" registry-center-ref="regCenter" cron="0/2 * * * * ?" sharding-total-count="2" sharding-item-parameters="0=A,1=B" />

  (4)啟動程序,就可以在之前部署的控制臺看到job狀態(tài)

    登錄的賬號密碼在打包的配置文件里,登錄后配置注冊中心? 就可以在頁面中看到job了

    

?

四,job執(zhí)行說明:

  1. 如果分片數(shù)是1??sharding-total-count = "1" zookeeper注冊中心會在多臺服務器中隨機選擇一臺執(zhí)行,如果不是1,則會根據(jù)分片策略執(zhí)行。參考:分片原理

? ? 2.? 注冊中心可以有多臺,但是都是以單數(shù)的形式(1,3,5),因為zookeeper 是一主多從,主的宕機,會使用選舉的形式再次確定哪個是主,哪些是從。

  3. 如果設置了數(shù)據(jù)庫的jndi,并且設置了?event-trace-rdb-data-source 的值,job運行的時候會在數(shù)據(jù)庫的?OB_EXECUTION_LOG和JOB_STATUS_TRACE_LOG兩張表中生成執(zhí)行記錄,不設置也不影響job的正常運行 ,例如:

  

?

五,問題記錄

?  (1)zookeeper安裝啟動問題:

  啟動會遇到問題,例如找不到jdk,具體原因在安裝目錄 bin/zookeeper.out文件中查找,找到問題并解決后在啟動

  (2) 關(guān)閉應用的程序的時候,tomcat 進程還在

  tomcat(sh shutdown.sh) 關(guān)閉的時候,項目不能徹底停掉,進程還在:是因為關(guān)閉的時候servlet容器發(fā)現(xiàn)job還有線程存在,所以不能徹底關(guān)閉

  解決辦法:增加一個監(jiān)聽,在contextDestroyed 方法中你用elastic-job的shutdown方法

//新建一個類實現(xiàn)ServletContextListener用于關(guān)閉elasticJob的線程 @WebListener public class JobServletContextListener implements ServletContextListener {private static Logger logger = LoggerFactory.getLogger(JobServletContextListener.class);@Overridepublic void contextInitialized(ServletContextEvent servletContextEvent) {}@Overridepublic void contextDestroyed(ServletContextEvent servletContextEvent) {logger.info("Destroying Context...");try {WebApplicationContext context = (WebApplicationContext) servletContextEvent.getServletContext().getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);String[] beanNames = context.getBeanDefinitionNames();for(String beanName:beanNames){if(beanName.contains("dangdang")&&beanName.contains("SpringJobScheduler")){logger.info("發(fā)現(xiàn)dangdang定時任務beanName: "+beanName);SpringJobScheduler scheduler = (SpringJobScheduler)context.getBean(beanName);scheduler.getSchedulerFacade().shutdownInstance();}}} catch (Exception e) {logger.error("Error Destroying Context", e);}} }

?

?

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/sunjiguang/p/9273871.html

總結(jié)

以上是生活随笔為你收集整理的elastic-job 的简单使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: a级片在线免费看 | 日本在线小视频 | 屁屁影院国产第一页 | 日韩高清一区二区 | 亚洲系列中文字幕 | 福利影院在线观看 | 性欧美一区 | 亚洲性图视频 | 欧美亚洲另类小说 | 亚洲高清av在线 | 国产偷v国产偷v亚洲高清 | 亚洲国产极品 | 欧美xxx性| 国产青草 | 亚洲国产成人va在线观看天堂 | 性欧美在线视频观看 | xxxxx黄色| 中国成熟妇女毛茸茸 | jizzjizz美国 | 亚洲春色www| 丰满少妇高潮久久三区 | 欧美五月激情 | 国产精品水嫩水嫩 | 欧美日韩制服 | 久久久久久无码午夜精品直播 | 综合色小说 | 亚洲日本网站 | 香蕉成人在线视频 | 亚洲欧洲成人精品久久一码二码 | 先锋影音av在线 | 欲求不满在线小早川怜子 | 美国性生活大片 | fc2ppv色の美マンに中出し | 亚洲蜜臀av一区二区三区 | 欧美a视频| 国产精品老熟女视频一区二区 | 国产三级网站 | 久久黑人| 深夜福利免费视频 | 高跟91娇喘 | 内射一区二区 | av导航网| 欧美黑人xxxⅹ高潮交 | 欧美精品一级二级三级 | 色就是色亚洲色图 | 男女搞网站 | 自拍偷拍日韩 | 国产乱码精品1区2区3区 | 中文字幕永久免费 | 亚洲永久免费av | 国产91影院 | 日韩一及片 | 欧美麻豆视频 | 国产人人草 | 欧美大片91| 成年视频在线观看 | 久久久蜜桃一区二区人 | 伊人久久五月天 | 日本a级无毛 | 97视频在线 | 国产激情精品一区二区三区 | 玉丸(双性调教) | 波多野结衣女同 | 性国产精品 | 90岁老太婆乱淫 | 偷拍老头老太高潮抽搐 | 日日夜夜爱爱 | 女儿的朋友4在线观看 | 一区二区福利视频 | 免费成人av在线 | 日本激情视频在线 | 中文字幕伊人 | 免费毛毛片 | 超碰97久久 | 男女爱爱网站 | 一本色道久久综合亚洲精品小说 | 秋霞99 | 老司机深夜免费福利 | 欧美日韩在线免费 | 精品一区二区三区入口 | 五月天久久婷婷 | 成人av图片 | 巨乳女教师的诱惑 | 日本在线网站 | 免费99视频| 少妇高潮伦 | 夜夜躁狠狠躁日日躁av | 在线爱情大片免费观看大全 | 日韩高清一级片 | 亚洲av无码乱码国产精品fc2 | 好男人www社区 | 奇米第四色在线 | 欧美性受黑人性爽 | 最近中文字幕无免费 | 国产精品永久久久久久久久久 | 中文字幕一区二区三区四区五区 | 国产精品永久免费 | 被灌满精子的波多野结衣 | 尹人香蕉|