java schdule 表达式 早上九点触发 晚上22点停止 每分钟触发一次
时间: 2023-12-06 11:45:33 浏览: 28
你可以使用 Quartz Scheduler 来实现这个功能。下面是一个基本的 Java 代码示例:
```
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.util.Date;
public class SchedulerExample {
public static void main(String[] args) throws SchedulerException {
// 创建一个调度器工厂
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
// 获取调度器实例
Scheduler scheduler = schedulerFactory.getScheduler();
// 创建一个触发器
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("trigger1", "group1")
.startAt(new Date()) // 设置开始时间为当前时间
.endAt(DateBuilder.dateOf(22, 0, 0)) // 设置结束时间为晚上22点
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInMinutes(1) // 每分钟触发一次
.repeatForever())
.build();
// 创建一个任务
JobDetail job = JobBuilder.newJob(MyJob.class)
.withIdentity("job1", "group1")
.build();
// 将任务和触发器添加到调度器中
scheduler.scheduleJob(job, trigger);
// 启动调度器
scheduler.start();
}
public static class MyJob implements Job {
public void execute(JobExecutionContext context) {
// 任务执行的具体逻辑
System.out.println("任务执行了,当前时间为:" + new Date());
}
}
}
```
这个示例代码中,创建了一个触发器 `trigger`,开始时间为当前时间,结束时间为晚上22点,每分钟触发一次。同时创建了一个任务 `MyJob`,任务执行的具体逻辑在 `execute` 方法中实现。最后将任务和触发器添加到调度器中,并启动调度器。