Update DailyExclusion timing to handle Event Broker use cases

Matthew Clark 7 years ago • updated by anonymous 3 years ago 3

Following from work done for EB-24 and EB-47, the timings have been changed for usability and clarity in configuration, and also for utility in Event Broker. With the addition of exclusion periods to v3.0.0, a number of use cases need to be considered, and the current interface needs to be extended.

In particular, DailyExclusion timing should be updated to account for multiple exclusion periods. Further work needs to be carried out to allow for this functionality, with appropriate error and configuration handling at the factory level, as well as proper functionality as a decorated timing. Specifically:

  • Testing of multiple exclusion periods with use cases appropriate to both Identity Broker and Event Broker (as this is a Framework level change to be ported over to Framework at a later date)
  • Unit testing for performance of the NextRun given long exclusion periods - this has been carried out
  • Refactoring of timing configuration to take multiple exclusion periods in its configuration, rather than decorating itself multiple times - this way, overlaps and potential infinite calculations (eg. the whole day is excluded) can be detected easily at the factory level when the configuration is read, rather than in the operation of the timing (which could be undesirable)

DailyExclusion seems to be calculating next run and check due information correctly given use cases.

An important note is that the issue of the next run time never resolving (eg. every hour from 11:20am, exclusion period of 00:00:00 to 23:59:59) throws a NextRunWillNotResolveException on the NextRun call - it cannot be determined at the factory level. This exception will need to be handled appropriately

Marked as resolved until tested by the Event Broker engine


What happens in the above mentioned scenario? If this is no longer an issue, please close.


The engine correctly displays the schedule as never occurring. Issue closed.