A source schedule defines how often a source initiates a content pull and what to do when there is a failure.

A schedule can be specified for each source in the source definition, but should a source not provide a schedule it will inherit the "global" schedule.

PropertyDescriptionRequiredDefault
checkIntervalMinsThe length of time in minutes before triggering a content refreshYes30 mins
initialDelayMsStartup delay for the source.Yes1000 ms
retryEnabledWhen true, failures will trigger another content pullNotrue
retryDelayMinsThe interval between retries. This will rise exponentially on every failure.No5
maxRetriesMaximum number of retry attemptsNo100
resetOnSuccessIf true, when a source recovers and emits pages it's retry counter is returned to zeroNotrue

The global schedule applies to all sources that do not provide their own schedule. It can be configured as a top-level property of the Mosaic config file.

Given the config file below:

Source A will inherit the global schedule so it will:

  • Start after a 1 second delay
  • Pull content every 30 minutes
  • Retry a failed content pull after an initial 5 minute delay
  • Retry 10 times and if still unsuccessful, closing

Source B has its own schedule so it will:

  • Start after a 5 second delay
  • Pull content every 60 minutes
  • Retry a failed content pull after an initial 30 minute delay
  • Retry 50 times and if still unsuccessful, closing

The retry strategy that Mosaic employs is Exponential Backoff. This is a common strategy for networking applications that aims to prevent retries from causing more harm than good.

For example, given a source schedule that has a 1 minute retry delay and will retry a maximum of 3 times then the total time spent retrying is 7 minutes:

  • 1 minute delay then 1st retry
  • 2 minute delay then 2nd retry
  • 4 minute delay then 3rd (and final) retry

Total delay: 1 + 2 + 4 = 7 minutes

As you can see, the delay between retries is growing exponentially giving the content source more time to recover after each retry.

Mosaic BETA

Coming soon