Chroniton is a light-weight, fully customizable, fully integrable, strongly typed, and open source solution for scheduling Tasks. It was built with modern coding principals in mind.

It is available on GitHub and NuGet with both a traditional .NET and a .NET Core build.

Requirements for the initial build out included:

  • Consuming code is fully testable through mocking
  • Jobs are customizable and can manage their own state if needed
  • Scheduling is fully customizable
  • Scheduling implementation is wholly separate from running of the jobs
  • A job can be assigned to multiple schedules
  • A schedule can run multiple jobs
  • Initialization should be compatible with IOC in the consuming application
  • Consuming code should define the behavior of rescheduling long running jobs (defined as running past the next scheduled time)
  • All jobs run asynchronously
  • Where applicable all times are related to UTC instead of local time (no pesky server time getting in the way)
  • Minimal dependencies.
  • .NET Core support

How does it work?

The concept is simple.

  1. Construct an ISchedule
  2. Construct an IJob
  3. Marry the schedule to the Job

See the Tutorial for more information.