我想记录失败的runnables。
为此,我考虑:
public class LoggableRejectedExecutorHanlder implements RejectedExecutionHandler {
@Override
public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
....
log.error(" rejected task" + r);
}
...
service.submit(new Runnable() { ... public String toString() {return xxx;})
我将在ThreadPoolExecutor.RejectedExecutionHandler中使用该类。
不幸的是在日志中我看到r是FutureTask,并且我没有使用我的toString实现。在FutureTask中,我看到我的runnable被包装在私有的最终同步属性中。
我是否有一个很好的方法(除了反思)我可以在rejectedHandler中登录我的runnable的toString?