JOB的XML配置相当于命令模式中的一个命令,每次运行,会生成一个JOB INSTANCE,同时也会生成一个JOB EXCETION,JOB INSTANCE表示有一个JOB,JOB EXECUTION表示进行第一次尝试。失败运行的JOB再次运行时,只生成一个JOB EXCETION,表示进行的第二次尝试。当SPRING BATCH JOB引擎接到运行请求时,有以下几种情况:@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
- 判断此JOB以前是否有运行过,判断依据:根据JOB NAME和JOB PARAMETERS信息去这两张表查找,如找到记录,则是有运行过,如确定有则引擎退出并提示。
- 判断是否有重复运行的JOB,如果没,查找此JOB上次运行的情况,如果有FAIL的情况,则重新从上次失败的地方运行继续运行,判断根据:根据JOB INSTANCE关联的JOB EXECUTION查找是否有状态为FAIL的记录,如有则是,就新建一个JOB EXECUTION表示进行第二次尝试,同时又生成关于新JOB的JOB EXECUTION。上次的JOB运行完后,再运行此次新JOB。判断上次失败的STEP的依据:查找对应的JOB EXECUTON的STEP EXECUTON状态为FAIL的STEP即可,会从此步骤开始运行,而不是从第一步开始运行。
参考文档: