Java – stop the scheduler after a specific time

I'm trying to create a scheduler in akka

>It will start at 5:00 a.m. > it will stop at 10:00 p.m. > it will perform the job every hour (frequency)

I found a solution for point 3 (frequency), but I couldn't find a solution for points 1 and 2

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

Solution

// For 5.00 am time period. 
// 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;
    }

Repeat this operation for a 10 am time period, which will be 22 hours I hope it will solve the problem

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>