Elastic-Jobの異常プロセッサ
4632 ワード
Elastic-jobでは、タスクスケジューリング異常時に例外を処理する例外プロセッサを指定できます.例外プロセッサは、インタフェースJobExceptionHandlerによって定義され、次のように定義されます.
独自の例外プロセッサelastic-jobが指定されていない場合、デフォルトではDefaultJobExceptionHandlerを使用して例外が処理されます.定義は次のとおりです.
次に、カスタム例外プロセッサの例を示します.
例外プロセッサの構成はjob-exception-handlerプロパティで指定され、すべてのジョブタイプの例外プロセッサの構成は共通です.
(本文はElimが2017年10月2日に書いた)
/**
* .
*
* @author zhangliang
*/
public interface JobExceptionHandler {
/**
* .
*
* @param jobName
* @param cause
*/
void handleException(String jobName, Throwable cause);
}
独自の例外プロセッサelastic-jobが指定されていない場合、デフォルトではDefaultJobExceptionHandlerを使用して例外が処理されます.定義は次のとおりです.
/**
* .
*
* @author zhangliang
*/
@Slf4j
public final class DefaultJobExceptionHandler implements JobExceptionHandler {
@Override
public void handleException(final String jobName, final Throwable cause) {
log.error(String.format("Job '%s' exception occur in job processing",
jobName), cause);
}
}
次に、カスタム例外プロセッサの例を示します.
public class MyJobExceptionHandler implements JobExceptionHandler {
private static final Logger logger
= Logger.getLogger(MyJobExceptionHandler.class);
@Override
public void handleException(String jobName, Throwable cause) {
logger.error(String.format(" [%s] ", jobName), cause);
}
}
例外プロセッサの構成はjob-exception-handlerプロパティで指定され、すべてのジョブタイプの例外プロセッサの構成は共通です.
<job:simple id="myExceptionJob" class="com.elim.learn.elastic.job.MyExceptionJob"
cron="0/30 * * * * ?"
registry-center-ref="regCenter" sharding-total-count="4" overwrite="true"
job-exception-handler="com.elim.learn.elastic.job.MyJobExceptionHandler" />
(本文はElimが2017年10月2日に書いた)