延迟执行定时任务
@Component public class ScheduledThreadPool { @Bean public ScheduledThreadPoolExecutor scheduledThreadPoolExecutor() { ThreadFactory threadFactory = ThreadFactoryBuilder.create().setNamePrefix("scheduled-threadPool-%d").build(); ThreadPoolExecutor.CallerRunsPolicy callerRunsPolicy = new ThreadPoolExecutor.CallerRunsPolicy(); return new ScheduledThreadPoolExecutor(Runtime.getRuntime().availableProcessors() * 2, threadFactory, callerRunsPolicy); } }
//执行定时任务线程定义
@AllArgsConstructor @ToString @Setter public class CommitTask implements Runnable { //需要的参数 private String aicloudId; private String subCapacity; private CommitService commitService; @Override public void run() { commitService.commit(aicloudId, subCapacity); } }
@Autowired private ScheduledThreadPoolExecutor scheduledThreadPoolExecutor; //立即执行 CommitTask commitTask = new CommitTask(aicloudId, serviceCode, commitService); scheduledThreadPoolExecutor.execute(commitTask); //延迟执行 CommitTask commitTask = new CommitTask(aicloudId, serviceCode, commitService); scheduledThreadPoolExecutor.schedule(commitTask, limitMinute, TimeUnit.MINUTES);
touch fish

浙公网安备 33010602011771号