package tech.powerjob.common.enhance;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import java.util.concurrent.ScheduledExecutorService;
|
|
/**
|
* 安全的 runnable,可防止因抛出异常导致周期性任务终止
|
* 使用 {@link ScheduledExecutorService} 执行任务时,推荐继承此类捕获并打印异常,避免因为抛出异常导致周期性任务终止
|
*
|
* @author songyinyin
|
* @since 2023/9/20 15:52
|
*/
|
@Slf4j
|
public abstract class SafeRunnable implements Runnable{
|
@Override
|
public void run() {
|
try {
|
run0();
|
} catch (Exception e) {
|
log.error("[SafeRunnable] run failed", e);
|
}
|
}
|
|
protected abstract void run0();
|
}
|