java – 特定时间后停止调度程序
发布时间:2020-12-15 02:19:04 所属栏目:Java 来源:网络整理
导读:我正在尝试在AKKA中创建一个Scheduler. 要求是: – 它将每天凌晨5:00开始 它将在每天晚上10点停止 它将每1小时(频率)执行一次作业. 我找到第3点(频率)的解决方案,但无法找到第1点和第2点的解决方案. system.scheduler().schedule(Duration.create(10,TimeUn
我正在尝试在AKKA中创建一个Scheduler.
要求是: – >它将每天凌晨5:00开始 我找到第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),Duration.create(24,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 AM时间段,这将是22小时.希望它能解决问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |