精品欧美激情精品一区,亚洲自拍的二区三区,亚洲综合精品一区二区,国产伦精品一区二区三区视频免费


學(xué)AI,好工作 就找北大青鳥
關(guān)注小青 聽課做題,輕松學(xué)習(xí)
周一至周日
4000-9696-28

Spring Batch 2. 行話

來源: 北大青鳥 2015年08月04日 15:08

摘要: Spring Batch 2. 行話
Spring Batch 2. 行話
每一個行業(yè)都有自己的行話,SpringBatch也不例外。

Job一個Job是用于封裝一整個批處理的實體。和其它Spring項目一樣,一個Job和一個XML配置文件相連。這個文件可能叫任務(wù)配置。無論如何,Job是整個層次結(jié)構(gòu)的頂點。

一個Job就是一系列Step的容器。Job可以定義一些屬性,如是否可以重新執(zhí)行。Step會使用Job定義的屬性。


Spring Batch 2. 行話

Job的定義包含下面幾個部分
? 一個簡單的名字
? 一系列步驟
? 是否支持重新執(zhí)行

SpringBatch提供一個基本的實現(xiàn)SimpleJob。可以用下面方式配置一個Job
Xml代碼 

  • <job id="footballJob">  

  •     <step id="playerload" next="gameLoad"/>  

  •     <step id="gameLoad" next="playerSummarization"/>  

  •     <step id="playerSummarization"/>  

  • </job>  


<job id="footballJob">    <step id="playerload" next="gameLoad"/>    <step id="gameLoad" next="playerSummarization"/>    <step id="playerSummarization"/></job>
JobInstance一個JobInstance就是一個Job的實例。一個Job的每次受調(diào)度都會產(chǎn)生一個JobInstance。假如我們配置一個每天都運行的任務(wù)。那么每天都會有一個JobInstance產(chǎn)生。1月1號會有一個JobInstance,1月2號會有一個。如果1月1號的那個JobInstance執(zhí)行失敗,再執(zhí)行一次并不會新產(chǎn)生一個JobInstance,還是1月1號的那個JobInstance。

一個JobInstance不和任何數(shù)據(jù)綁定。JobInstance只保存狀態(tài),如何加載數(shù)據(jù)完全由ItemReader的實現(xiàn)決定。 


JobParameters
JobParameters用于區(qū)分JobInstance。一個JobParameters是在開始一個Job時的一組參數(shù)。

在上圖的例子中,有兩個JobInstance,1月1號和1月2號。但是它們屬于同一個Job,所以我們可以說JobInstance = Job + JobParameters。

JobExecution
一個JobExecution就是一次真正意義上一次Job的執(zhí)行。一個JobInsntace可以有多個JobExecution,一個JobExecution的失敗并不意味這個JobInstance失敗。

一個Job定義這個Job該如何執(zhí)行。JobInstnace用于將一系列的JobExecution組織起來。JobExecution會將本次執(zhí)行的狀態(tài)記錄下來。

JobExecution有如下屬性:
  • status:本次執(zhí)行的狀態(tài),可以是BatchStatus.STARTED、BatchStatus.FAILED、BatchStatus.COMPLETED等

  • startTime:JobExecution執(zhí)行開始時間

  • endTime:JobExecution執(zhí)行的結(jié)束時間

  • exitStatus:JobExecution執(zhí)行的結(jié)果

  • createTime:JobExecution的生成時間。如果還沒有開始執(zhí)行那么就沒有startTime,但是createTime始終是有的。

  • lastUpdated:最后更新時間

  • executionContext:一個容器,用于執(zhí)行時需要保存的用戶數(shù)據(jù)。

  • failureExceptions:執(zhí)行時碰到的異常列表。有多個異常的導(dǎo)致失敗時會有用。


Step
每個Job包含一個或多個Step。一個Step包含實際執(zhí)行需要的信息。一個Step可以很簡單也業(yè)很復(fù)雜。一個簡單的Step可能不需要代碼或只要寫一點點代碼,如把數(shù)據(jù)從文件加載到數(shù)據(jù)庫中。和Job一樣,一個Step也有StepExecution的概念。如下圖所示,Job由Step組成,JobExecution由StepExecution組成。

StepExecution
StepExecution表示一個Step的執(zhí)行。 StepExecution只有在真正開始時才會生成,而不是JobExecution開始時就生成所有的StepExecution。StepExecution有對應(yīng)的Step(可能只是名字?)和JobExecution的引用,以及和事務(wù)相關(guān)的數(shù)據(jù)。它還有一個ExecutionContext,用于保存用戶數(shù)據(jù)。

StepExecution有下面的一系列屬性。

  • status:本次執(zhí)行的狀態(tài),可以是BatchStatus.STARTED、BatchStatus.FAILED、BatchStatus.COMPLETED等

  • startTime:JobExecution執(zhí)行開始時間

  • endTime:JobExecution執(zhí)行的結(jié)束時間

  • exitStatus:JobExecution執(zhí)行的結(jié)果

  • createTime:JobExecution的生成時間。如果還沒有開始執(zhí)行那么就沒有startTime,但是createTime始終是有的。

  • executionContext:一個容器,用于執(zhí)行時需要保存的用戶數(shù)據(jù)。

  • failureExceptions:執(zhí)行時碰到的異常列表。有多個異常的導(dǎo)致失敗時會有用。

  • readCount:有少條記錄已經(jīng)成功的讀了。

  • writeCount:有少條記錄已經(jīng)成功的寫了。

  • commitCount:已經(jīng)提交了多少次事務(wù)了。

  • rollbackCount:和Step相關(guān)的事物被回滾了多少次。

  • readSkipCount:讀跳過了多少次。resulting in a skipped item.?

  • processSkipCount:處理跳過了多少次。resulting in a skipped item.

  • filterCount:用ItemProcessor跳過了多少條記錄。

  • writeSkipCount:寫跳過了多少次。resulting in a skipped item.?

ExecutionContextExecutionContext是一系列的鍵/值對,由框架控制保存。它允許用戶保存StepExecution或JobExecution的狀態(tài)信息。ExecutionContext和Quartz的JobDataMap非常類似。使用ExecutionContext的最佳例子就是重試的輔助。以讀取文本文件為例,處理時可以將處理到哪一行記錄到ExecutionContext中,框架會把這些信息在檢入點永久保持起來。當(dāng)失敗時可以從上次失敗的那個點開始重新運行。


JobRepository
JobRepository是上面所有東西的存儲機(jī)制。它為JobLauncher、Job和Step的實現(xiàn)提供了CRUD操作。當(dāng)一個Job開始運行時,從JobRepository獲取一個JobExecution。在執(zhí)行階段StepExecution和JobExecution會保存到JobRepository中。

JobLauncher JobLauncher用于從JobRepository獲取JobExecution和執(zhí)行該JobExecution。接口定義如下。
Java代碼 

  • public interface JobLauncher {   

  •     public JobExecution run(Job job, JobParameters jobParameters)   

  •         throws JobExecutionAlreadyRunningException, JobRestartException;   

  •     }   

  • }  


public interface JobLauncher {    public JobExecution run(Job job, JobParameters jobParameters)        throws JobExecutionAlreadyRunningException, JobRestartException;    }}ItemReaderItemReader用于抽象Step的輸入。當(dāng)所有輸入讀完后返回null。

ItemWriter
ItemWriter用于抽象Step的輸出,每次一條記錄。通常來說,ItemWriter并不知道下一條要處理什么,它只有當(dāng)前的那條記錄。

ItemProcessor
ItemProcessor用于抽象一條記錄的處理。ItemReader用于讀一條記錄,ItemWriter用于寫一條記錄,ItemProcessor用于應(yīng)用業(yè)務(wù)邏輯,從一種格式到另一種格式。在處理過程中,返回null表示這條記錄不需要寫下來。


熱門班型時間
人工智能就業(yè)班 即將爆滿
AI應(yīng)用線上班 即將爆滿
UI設(shè)計全能班 即將爆滿
數(shù)據(jù)分析綜合班 即將爆滿
軟件開發(fā)全能班 爆滿開班
網(wǎng)絡(luò)安全運營班 爆滿開班
報名優(yōu)惠
免費試聽
課程資料
官方微信
返回頂部
培訓(xùn)課程 熱門話題 站內(nèi)鏈接
精品欧美激情精品一区,亚洲自拍的二区三区,亚洲综合精品一区二区,国产伦精品一区二区三区视频免费
亚洲欧美另类久久久精品| 一卡二卡欧美日韩| 亚洲一区二区三区四区在线免费观看| 亚洲天堂av一区| 一区二区三区影院| 国产在线看一区| 从欧美一区二区三区| 蜜桃av久久久亚洲精品| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 欧美日韩精品三区| 国产精品女上位| 久久国产婷婷国产香蕉| 高清国产在线一区| 欧美日韩一区二区三区不卡| 欧美一区二区观看视频| 亚洲精品国产第一综合99久久| 精品无码三级在线观看视频| 国产成a人亚洲| 99久久伊人精品| jlzzjlzz欧美大全| 国产在线一区二区三区播放| 91国偷自产一区二区开放时间 | 中文字幕日韩一区二区三区| 精品久久久久久久久久久久包黑料| 国产日韩欧美麻豆| 一区二区在线观看视频| 国产91精品一区二区| 丁香婷婷久久久综合精品国产| 久久伊人资源站| 欧美精品123区| 一区二区三区日韩欧美| 成av人片一区二区| 美女视频久久| 在线免费不卡电影| 亚洲视频狠狠干| 免费人成网站在线观看欧美高清| 国产精品一区二区三区四区| 91免费国产视频网站| 欧美体内she精视频| 亚洲丝袜美腿综合| 美美哒免费高清在线观看视频一区二区| 国产成人在线看| 九色91国产| 欧美成人一区二区三区片免费| 日韩国产精品久久久久久亚洲| 国产99久久久国产精品潘金网站| 神马影院一区二区三区| 91精品啪在线观看国产60岁| 欧美国产日韩在线观看| 国产久卡久卡久卡久卡视频精品| 国产99视频精品免费视频36| 欧美国产视频在线观看| 欧美日韩一区二区三区不卡| 一区二区三区四区亚洲| 91视频一区二区三区| 欧美蜜桃一区二区三区| 天天色综合成人网| 91在线你懂得| 欧美精品tushy高清| 中文字幕在线不卡| 99久久99久久久精品齐齐| 欧美色图一区二区三区| 欧美国产成人精品| 成人美女在线视频| 色综合久久久久久久久五月| 国产日韩欧美一区二区三区乱码| 国产成人精品一区二区三区四区 | 欧美不卡激情三级在线观看| 麻豆精品一二三| 五月天久久狠狠| 久久综合色天天久久综合图片| 精品一区二区在线视频| 一个色的综合| 亚洲国产高清在线观看视频| 奇米777欧美一区二区| 91色九色蝌蚪| 日韩资源av在线| 最新中文字幕一区二区三区| 国产一区91精品张津瑜| 色婷婷狠狠综合| 国产精品水嫩水嫩| 99re视频在线| 欧美日韩高清一区| 一级精品视频在线观看宜春院 | 色av成人天堂桃色av| 亚洲国产精品久久久男人的天堂| av在线综合网| 日韩欧美一区二区视频| 国产精品影音先锋| 亚洲精品乱码久久久久久蜜桃91 | 中文字幕亚洲区| 国产精品成人一区二区三区 | 99久久久免费精品国产一区二区| 91麻豆精品国产91久久久使用方法 | 欧美巨大另类极品videosbest| 视频一区中文字幕国产| 国产精品初高中精品久久 | 成人福利在线看| 日韩一区二区三区观看| 国产成人精品一区二| 一本一道久久a久久综合精品| 亚洲在线视频网站| 亚洲 国产 欧美一区| 国产欧美精品区一区二区三区| 97超碰欧美中文字幕| 久久久一区二区三区| 999国产在线| 中文字幕的久久| 风间由美一区二区av101| 91精品国产91热久久久做人人| 国产精品123区| 日韩女同互慰一区二区| 麻豆精品视频在线观看视频| 欧美视频一区二区三区在线观看| 亚洲自拍与偷拍| 亚洲春色综合另类校园电影| 丝袜诱惑亚洲看片| 欧日韩精品视频| 国产精品一二三区| 精品日韩99亚洲| 91精品国产99久久久久久红楼| 亚洲国产高清在线观看视频| 成人毛片视频在线观看| 久久色成人在线| 国产欧美日韩伦理| 日本一区二区三区dvd视频在线| 成人午夜碰碰视频| 欧美妇女性影城| 另类中文字幕网| 色婷婷av久久久久久久| 国内欧美视频一区二区| 一区二区三区视频| 一区二区三区四区亚洲| 亚洲在线视频一区二区| 亚洲一区二区高清| 色哟哟国产精品| 国产精品一区久久久久| 久久久一区二区三区| 99免费精品在线| 日韩一区欧美小说| 亚洲精品一区二区三区樱花| 久久国产福利国产秒拍| 日韩你懂的在线播放| 国产伦理久久久| 日本一区二区三区四区在线视频| 久久超碰97中文字幕| 在线免费观看日本欧美| 高清久久久久久| 日韩手机在线导航| 国产精品亚洲综合| 亚洲成av人在线观看| 欧美一区二区高清在线观看| 18涩涩午夜精品.www| 国产亚洲精品自在久久| 亚洲综合男人的天堂| 欧美久久在线| 亚洲精品网站在线观看| 91原创国产| 久久久国产精品午夜一区ai换脸| www.欧美亚洲| 欧美成人猛片aaaaaaa| 精品国产免费人成电影在线观... 精品国产免费久久久久久尖叫 | 亚洲激情男女视频| 日韩偷拍一区二区| 狠狠久久亚洲欧美| 国产拍揄自揄精品视频麻豆| 亚洲欧洲国产精品久久| 国产成人无遮挡在线视频| 中文字幕在线观看一区| 欧美亚洲综合色| 3d精品h动漫啪啪一区二区| 亚洲国产成人高清精品| 色综合天天综合色综合av| 粉嫩aⅴ一区二区三区四区| 久久综合九色欧美综合狠狠| 欧美亚洲国产免费| 国产乱码字幕精品高清av | 日韩精品专区在线影院重磅| 久久久久久国产精品免费免费| 久久精品国产亚洲高清剧情介绍| 国产日韩精品一区| 久久国产精品99久久久久久丝袜| 免费观看久久久4p| 中文字幕欧美区| 在线观看一区二区视频| 岛国视频一区| 麻豆精品在线看| 国产精品麻豆一区二区| 日韩三级电影| 成人av在线影院| 婷婷综合另类小说色区| 欧美日本免费一区二区三区| 成人午夜精品在线| 亚洲一区二区在线免费观看视频 | 国产乱子伦一区二区三区国色天香| 最新中文字幕一区二区三区| 3d成人动漫网站| 日韩欧美一区二区在线观看| www.66久久| 乱中年女人伦av一区二区|