gpt4 book ai didi

java - 在特定时间后停止调度程序

转载 作者:搜寻专家 更新时间:2023-11-01 03:47:18 25 4
gpt4 key购买 nike

我正在尝试在 AKKA 中创建一个调度程序。要求是:-

  1. 每天早上 5:00 开始
  2. 每天晚上 10:00 停止
  3. 它将每 1 小时(频率)执行一次作业。

我找到了第 3 个点(频率)的解决方案,但找不到第 1 个和第 2 个点的解决方案。

 system.scheduler().schedule(Duration.create(10, TimeUnit.SECONDS), Duration.create(1, TimeUnit.HOURS), actorRef, "Hello", system.dispatcher(), null);

最佳答案

// For 5.00 am time period. 

int InHrs = 17;
int InMinutes = 00;

scheduler = Akka.system().scheduler().schedule(Duration.create(nextExecutionInSeconds(InHrs, InMinutes), TimeUnit.SECONDS),
Duration.create(24, TimeUnit.HOURS),
new Runnable() {
@Override
public void run() {
// Call your method
System.out.println("EVERY 24:00 Later --- " + System.currentTimeMillis());

}
},
Akka.system().dispatcher());


public static int nextExecutionInSeconds(int hour, int minute){
return Seconds.secondsBetween(
new DateTime(),
nextExecution(hour, minute)
).getSeconds();
}

public static DateTime nextExecution(int hour, int minute){
DateTime next = new DateTime()
.withHourOfDay(hour)
.withMinuteOfHour(minute)
.withSecondOfMinute(0)
.withMillisOfSecond(0);

return (next.isBeforeNow())
? next.plusHours(24)
: next;
}

在上午 10 点的时间段重复此操作,即 22 小时。希望它能解决问题。

关于java - 在特定时间后停止调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43464125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com