An experimental, easy to use job execution engine built on top of Quartz Enterprise Scheduler .NET. R.Scheduler is API driven. Actions can be performed using a simple RESTful API using JSON over HTTP.
R.Scheduler is used in a production environment with a couple of thousands of jobs running daily. It is relatively matured but hasn’t been officially released. It may not yet be suitable for the most demanding and conservative projects.
Public (Web) API is relatively stable but minor changes are likely in future versions.
Calling initialize with no parameters will create and start an instance of the Scheduler with default configuration options.
R.Scheduler.Scheduler.Initialize();
Initialize also takes a single lambda/action parameter for custom configuration. In this case we choose not to start the Scheduler automatically. Instead, we create a scheduler instance and start the instance explicitly after the Scheduler initialization.
R.Scheduler.Scheduler.Initialize(config =>
{
config.AutoStart = false;
config.CustomFtpLibraryAssemblyName = "MyFtpLib.dll";
config.PersistanceStoreType = PersistanceStoreType.Postgre;
config.ConnectionString = "Server=localhost;Port=5432;Database=Scheduler;User Id=xxx;Password=xxx;";
});
IScheduler sched = R.Scheduler.Scheduler.Instance();
sched.Start();
POST /api/dirScanJobs
{
"JobName": "MyJob",
"DirectoryName": "C:/MyFiles",
"MinimumUpdateAge": 10000,
"CallbackUrl": "http://myendpoint:6000/",
"LastModifiedTime": "01/01/2015"
}
POST /api/simpleTriggers
{
"Name": "MyTrigger",
"JobName": "MyJob",
"RepeatCount": 5,
"RepeatInterval": "0:00:01:00"
}
POST /api/jobs/execution?JobName=MyJob&JobGroup=DEFAULT
{}
- Jobs:
- SendMailJob
- NativeJob
- DirectoryScanJob (with callback url parameter)
- Triggers:
- Simple Trigger
- Cron Trigger
- Calendars:
- Holiday Calendar
- Misfire Instructions
- DataStore:
- SqlServer
- Postgres
- Jobs:
- AssemblyPluginJob
- FtpDownloadJob (Use Default Ftp library or inject your own)
- WebRequestJob
- DirectoryScanJob callback
- SqlJob
- WebApi
- Auditing
Download from NuGet 'R.Scheduler' and install into your Host application.
Download from NuGet 'R.Scheduler.Contracts' and install into your Client application(s).