Elastic-Job之异常处理器-阿里云开发者社区

开发者社区> 云计算> 正文

Elastic-Job之异常处理器

简介: elastic-job允许用户在任务调度异常时指定处理异常的异常处理器,异常处理器由接口JobExceptionHandler定义,其定义如下: /** * 作业异常处理器.

elastic-job允许用户在任务调度异常时指定处理异常的异常处理器,异常处理器由接口JobExceptionHandler定义,其定义如下:

/**
 * 作业异常处理器.
 *
 * @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日)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章