定时器
package com.erayt.mock.test.thread; import com.erayt.fmut.infrastructure.util.thread.LongTimeTaskExecutor; import com.erayt.fmut.infrastructure.util.thread.ThreadPoolExecutorBuilder; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.stereotype.Component; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; /** * 文件名: com.erayt.mock.test.thread-SchedualThread </br> * 文件简介: </br> * 执行定时任务(可动态修改定时任务间隔) * @author wxy </br> * @date 2024/8/29 15:39 </br> * Copyright (c) 2022 ERAYT. All Rights Reserved */ @Component public class ScheduleThread implements Runnable, InitializingBean, DisposableBean { private LongTimeTaskExecutor pool; private static Boolean update = Boolean.TRUE; private static ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(3); private static ScheduledFuture<?> scheduledFuture1 = null; private int time = 1; @Override public void run() { while (update){ try { TimeUnit.SECONDS.sleep(1); scheduledFuture1 = scheduledExecutorService.scheduleAtFixedRate( () -> System.out.println(time), 0, time, TimeUnit.SECONDS); update = Boolean.FALSE; System.out.println("触发更新"); onChange(); } catch (Exception e) { e.printStackTrace(); } } } @Override public void destroy() throws Exception { scheduledExecutorService.shutdown(); } @Override public void afterPropertiesSet() throws Exception { pool = ThreadPoolExecutorBuilder.createSingleLongTimeTaskPool("ScheduleThread"); pool.init(); pool.submit(this); } public void onChange(){ scheduledFuture1.cancel(true); update = Boolean.TRUE; time = 10; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix