运行 每 15 分钟、每天、特定时间之间的方法

Running a method every 15 minutes, every day, between certain times

我想在伦敦时间 08:01:00 和 16:31:00 之间,每天每 15 分钟 运行 一个方法。

所以像这样:

foo(); //run every 15 mins, everyday, between 08:01:00 and 16:31:00.

public void foo(){
//do stuff
} 

我试过使用日历和计时器,但无法正常工作。

感谢我们的帮助。

您可以使用quartz-scheduler

我已经用了一段时间了,效果很好。

使用定时器任务:

https://www.youtube.com/watch?v=36jbBSQd3eU

每 1000 毫秒你 运行 你的代码(每秒)。然后你检查 LocalTime.now() - 用你的时间。

如果时间为真,则调用您的方法(并将全局布尔变量设置回假)。否则什么都不做。

另一个性能点是线程(在我自己的计算机上)在 10 秒内 运行s 1 235 102 次。定时器任务会在 10 秒内 运行 10 次。

您将在一秒钟内完成此操作。

我希望我们在这里谈论 运行 JAVA 中的任何工作。 因此,在 java 中,我们有 SchedulerFactory 根据给定的 Cron 表达式来安排作业。

//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 工作 Here

希望对您有所帮助。