Class Scheduler
java.lang.Object
io.openems.backend.alerting.scheduler.Scheduler
- All Implemented Interfaces:
MessageSchedulerService
,TimedExecutor
,Consumer<ZonedDateTime>
public class Scheduler
extends Object
implements Consumer<ZonedDateTime>, MessageSchedulerService, TimedExecutor
A
MessageSchedulerService
implementation using MinuteTimer
.-
Nested Class Summary
Nested classes/interfaces inherited from interface io.openems.backend.alerting.scheduler.TimedExecutor
TimedExecutor.TimedTask
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
accept
(ZonedDateTime now) void
CancelTimedExecutor.TimedTask
.int
Get the total count of Messages scheduled for dispatch.boolean
isScheduled
(Message msg) Check if given message is scheduled within any MessageScheduler.now()
Get the Executors currentZonedDateTime
.<T extends Message>
MessageScheduler<T> Register handler for message scheduling and return MessageScheduler, to do so.schedule
(ZonedDateTime at, Consumer<ZonedDateTime> task) Execute the given task at the given dateTime.void
start()
Subscribe to minuteTimer and start scheduling.void
stop()
Unsubscribe from minuteTimer and stop scheduling.<T extends Message>
voidunregister
(Handler<T> handler) Unregister handler for message scheduling and remove MessageScheduler.
-
Constructor Details
-
Scheduler
-
Scheduler
public Scheduler()
-
-
Method Details
-
register
Description copied from interface:MessageSchedulerService
Register handler for message scheduling and return MessageScheduler, to do so.- Specified by:
register
in interfaceMessageSchedulerService
- Type Parameters:
T
- type of message- Parameters:
handler
- to register- Returns:
- new MessageScheduler for handler to schedule messages with
-
unregister
Description copied from interface:MessageSchedulerService
Unregister handler for message scheduling and remove MessageScheduler.- Specified by:
unregister
in interfaceMessageSchedulerService
- Type Parameters:
T
- type of message- Parameters:
handler
- to unregister
-
schedule
Description copied from interface:TimedExecutor
Execute the given task at the given dateTime.- Specified by:
schedule
in interfaceTimedExecutor
- Parameters:
at
- time to execute attask
- task to execute- Returns:
- reference to Task as
TimedExecutor.TimedTask
Can be used to cancel the task.
-
cancel
Description copied from interface:TimedExecutor
CancelTimedExecutor.TimedTask
.- Specified by:
cancel
in interfaceTimedExecutor
- Parameters:
task
- to remove
-
now
Description copied from interface:TimedExecutor
Get the Executors currentZonedDateTime
. Should be used to calculate execution time.- Specified by:
now
in interfaceTimedExecutor
- Returns:
- current
ZonedDateTime
-
start
public void start()Subscribe to minuteTimer and start scheduling. -
stop
public void stop()Unsubscribe from minuteTimer and stop scheduling. -
getScheduledMsgsCount
public int getScheduledMsgsCount()Get the total count of Messages scheduled for dispatch.- Returns:
- total count
-
isScheduled
Check if given message is scheduled within any MessageScheduler.- Parameters:
msg
- to check for- Returns:
- true if any scheduling was found
-
accept
- Specified by:
accept
in interfaceConsumer<ZonedDateTime>
-