ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();

 

import java.util.concurrent.*; public class Main { public static void main(String[] args) { // 创建一个单线程的 ScheduledExecutorService ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor(); // 示例:安排一个任务在一段延迟后执行 executorService.schedule(() -> { System.out.println("在延迟后执行的任务"); }, 5, TimeUnit.SECONDS); // 示例:安排一个任务周期性地执行 executorService.scheduleAtFixedRate(() -> { System.out.println("周期性执行的任务"); }, 0, 1, TimeUnit.SECONDS); // 初始延迟为 0 秒,然后每隔 1 秒重复执行一次 // 在一段时间后关闭 executorService executorService.schedule(() -> { executorService.shutdown(); }, 10, TimeUnit.SECONDS); // 10 秒后关闭 } }

在这个示例中:

  • Executors.newSingleThreadScheduledExecutor() 创建了一个单线程的 ScheduledExecutorService。
  • 我们安排了两个任务:
    1. 一个任务使用 schedule() 在 5 秒后执行。
    2. 另一个任务使用 scheduleAtFixedRate() 定期执行,初始延迟为 0 秒,每隔 1 秒执行一次。
  • 我们还安排了一个任务在 10 秒后关闭 executorService

  • 19
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot中,可以使用ScheduledExecutorService来进行定时任务的调度。首先,你需要创建一个名为ScheduledTask的类,该类使用ScheduledExecutorService来实现倒计时。在该类中,你需要定义一个startCountdown方法,该方法接受需要倒计时的秒数和需要执行的任务作为参数。在方法内部,使用ScheduledExecutorServiceschedule方法来实现倒计时,并在倒计时结束后执行任务。下面是一个示例代码: import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import org.springframework.stereotype.Component; @Component public class ScheduledTask { private ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor(); public void startCountdown(Long seconds, Runnable task) { executorService.schedule(task, seconds, TimeUnit.SECONDS); } } 你可以在具体业务实现中使用该方法来执行定时任务。例如,你可以设置一个延迟时间为60秒的定时任务,代码如下: Long delayTime = 60L; if (delayTime > 0) { ScheduledTask scheduledTask = new ScheduledTask(); scheduledTask.startCountdown(delayTime, new Runnable() { @Override public void run() { System.out.println("时间到了执行"); } }); } else { System.out.println("时间低于0立即执行"); } 同时,Spring Framework也提供了Spring Task来实现定时任务。它使用cron表达式来配置定时任务的执行时间。你可以使用https://cron.qqe2.com/这个网站来匹配你的cron表达式。你可以参考以下示例代码: public class SomeScheduledExecutorService { public static void main(String[] args) { // 创建任务队列,共10个线程 ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(10); // 执行任务:1秒后开始执行,每30秒执行一次 scheduledExecutorService.scheduleAtFixedRate(() -> { System.out.println("执行任务:" + new Date()); }, 10, 30, TimeUnit.SECONDS); } } 所以,在Spring Boot中你可以选择使用ScheduledExecutorService或Spring Task来实现定时任务的调度。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [利用Spring Boot提供的ScheduledExecutorService实现定期执行任务或倒计时执行任务](https://blog.csdn.net/MoonJo_M/article/details/130991942)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [SpringBoot 7 种定时任务解决方案,简单实用](https://blog.csdn.net/Mael_Xu/article/details/124375500)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值