scheduled一分钟执行一次_@Scheduled cron表达式

本文详细介绍了Cron表达式的各种域及其特殊字符的含义,并提供了多个示例。同时,展示了如何使用@Scheduled注解配合cron表达式实现定时任务,并在服务启动时执行一次任务的方法。
摘要由CSDN通过智能技术生成

一、Cron详解:

Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式:

1.Seconds Minutes Hours DayofMonth Month DayofWeek Year

2.Seconds Minutes Hours DayofMonth Month DayofWeek

每一个域可出现的字符如下:

Seconds: 可出现", - * /"四个字符,有效范围为0-59的整数

Minutes:可出现", - * /"四个字符,有效范围为0-59的整数

Hours:可出现", - * /"四个字符,有效范围为0-23的整数

DayofMonth :可出现", - * / ? L W C"八个字符,有效范围为0-31的整数

Month:可出现", - * /"四个字符,有效范围为1-12的整数或JAN-DEc

DayofWeek:可出现", - * / ? L C #"四个字符,有效范围为1-7的整数或SUN-SAT两个范围。1表示星期天,2表示星期一, 依次类推

Year:可出现", - * /"四个字符,有效范围为1970-2099年

每一个域都使用数字,但还可以出现如下特殊字符,它们的含义是:

(1)*:表示匹配该域的任意值,假如在Minutes域使用*, 即表示每分钟都会触发事件。

(2) ?:只能用在DayofMonth和DayofWeek两个域。它也

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Java的ScheduledExecutorService来实现每分钟执行一次cron表达式,可以按照以下步骤: 1. 创建一个ScheduledExecutorService对象。 ```java ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(); ``` 2. 创建一个Runnable对象,该对象包含需要执行的任务。 ```java Runnable task = new Runnable() { @Override public void run() { // 执行需要执行的任务 } }; ``` 3. 创建一个cron表达式。 ```java String cronExpression = "0 * * * * ?"; ``` 这个表达式表示每分钟执行一次任务。 4. 使用CronTrigger创建一个Trigger对象。 ```java CronTrigger trigger = new CronTrigger(cronExpression); ``` 5. 使用ScheduledExecutorService的schedule方法来安排任务。 ```java scheduledExecutorService.schedule(task, trigger); ``` 完整的代码示例如下: ```java import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import org.springframework.scheduling.Trigger; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import org.springframework.scheduling.support.CronTrigger; public class Main { public static void main(String[] args) { ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(); Runnable task = new Runnable() { @Override public void run() { System.out.println("Task executed at " + System.currentTimeMillis()); } }; String cronExpression = "0 * * * * ?"; Trigger trigger = new CronTrigger(cronExpression); scheduledExecutorService.schedule(task, trigger); } } ``` 这个代码片段将每分钟执行一次任务,并在控制台上打印任务执行的时间戳。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值