我想每天15分钟,伦敦时间08:01:00到16:31之间运行一个方法。
这样的事情:
foo(); //run every 15 mins, everyday, between 08:01:00 and 16:31:00.
public void foo(){
//do stuff
}
我尝试过使用日历和计时器,但我无法使用它。
感谢您的帮助。
答案 0 :(得分:3)
我希望我们在这里谈论在JAVA中运行任何工作。
所以,在java中我们有SchedulerFactory
根据给它的Cron表达式调度Job。
//Create instance of factory
SchedulerFactory schedulerFactory=new StdSchedulerFactory();
//Get schedular
Scheduler scheduler= schedulerFactory.getScheduler();
//Create JobDetail object specifying which Job you want to execute
JobDetail jobDetail=new JobDetail("myJobClass","myJob1",MyJob.class);
//Associate Trigger to the Job
CronTrigger trigger=new CronTrigger("cronTrigger","myJob1","0 0/1 * * * ?");
//Pass JobDetail and trigger dependencies to schedular
scheduler.scheduleJob(jobDetail,trigger);
//Start schedular
scheduler.start();
MyJob.class
public class MyJob implements Job{
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("Your Logic");
}
}
现在你的chron工作就像是,
*/15 7-16 * * *
您可以查看有关chrome job Here
的更多信息我希望这会有所帮助。
答案 1 :(得分:1)
您可以使用quartz-scheduler
我已经使用了一段时间,它完美无缺。
答案 2 :(得分:0)
使用timertask:
https://www.youtube.com/watch?v=36jbBSQd3eU
每1000毫秒运行一次代码(每秒)。然后检查LocalTime.now() - 你的时间。
如果时间为真,则调用您的方法(并将全局布尔变量设置为false)。否则什么都不做。
另一个预见点是线程(在我自己的计算机上)在10秒内运行1 235 102次。时间任务将在10秒内运行10次。
你会在一秒钟之内离开。