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.
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.
- Construct an ISchedule
- Construct an IJob
- Marry the schedule to the Job
See the Tutorial for more information.