jgeurts/FluentScheduler — pull request #20 by CraigKennedy (2013-06-11 09:40:21+00:00)
Title: Added support for ToRunAboutEvery()

The general intent behind the ToRunAboutEvery() method is similar to ToRunEvery() ,but takes the duration and picks a random number between 10% less and 10% more than the duration. I have background tasks that run in a web farm of {n} number of servers. When the servers recycle the application pools around the same time, I want to spread the task's next run time out to a slightly less predictable time so that the tasks that perform work on a shared database don't all start at the same time to perform the same function on the shared resource.

Since the TimeUnits other than seconds and minutes allow for an "At()", I disallowed the randomization of the start time on TimeUnits other than seconds and minutes. The "At()" call would circumvent the randomization concept and potentially cause some other undesired behavior.