springboot中,配置线程池后,项目需要写一下自定义拒绝策略,毕竟要执行的定时任务不能轻易放弃,这里记录一下怎样获取参数。
public class CustomRejectionHandler implements RejectedExecutionHandler {
@SuppressWarnings("rawtypes")
@Override
public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
System.out.println(r.toString() + "被拒绝了,被拒绝了,被拒绝了,");
FutureTask ft=(FutureTask) r;
try {
Field callableField=ft.getClass().getDeclaredField("callable");
callableField.setAccessible(true);
Callable callable=(Callable) callableField.get(ft);
Field taskField= callable.getClass().getDeclaredField("task");
taskField.setAccessible(true);
Object obj=taskField.get(callable);
Field[] fieldArr=obj.getClass().getDeclaredFields();
for (int i = 0; i < fieldArr.length; i++) {
Field field=fieldArr[i];
field.setAccessible(true);
String