package tech.powerjob.common.enhance;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import java.util.concurrent.ScheduledExecutorService;
|
|
/**
|
* 使用 {@link ScheduledExecutorService} 执行任务时,推荐使用此对象包装一层,避免因为抛出异常导致周期性任务终止
|
*
|
* @author songyinyin
|
* @since 2023/9/20 16:04
|
*/
|
@Slf4j
|
public class SafeRunnableWrapper implements Runnable {
|
|
private final Runnable runnable;
|
|
public SafeRunnableWrapper(Runnable runnable) {
|
this.runnable = runnable;
|
}
|
|
@Override
|
public void run() {
|
try {
|
runnable.run();
|
} catch (Exception e) {
|
log.error("[SafeRunnableWrapper] run failed", e);
|
}
|
}
|
}
|