CronNET/Readme.md
2023-03-17 11:59:49 +01:00

103 lines
2.4 KiB
Markdown

CronNET
---------------------------
CronNET is a simple C# library for running tasks based on a cron schedule.
Cron Schedules
===============
CronNET supports most cron scheduling. See tests for supported formats.
```
* * * * *
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └───── day of week (0 - 6) (Sunday=0 )
│ │ │ └────────── month (1 - 12)
│ │ └─────────────── day of month (1 - 31)
│ └──────────────────── hour (0 - 23)
└───────────────────────── min (0 - 59)
```
```
`* * * * *` Every minute.
`0 * * * *` Top of every hour.
`0,1,2 * * * *` Every hour at minutes 0, 1, and 2.
`*/2 * * * *` Every two minutes.
`1-55 * * * *` Every minute through the 55th minute.
`* 1,10,20 * * *` Every 1st, 10th, and 20th hours.
```
How to install?
===============
You can install this [NuGet package](https://www.nuget.org/packages/Iminetsoft.CronNET)
Console Example
===============
``` c#
using System.Threading;
using CronNET;
namespace CronNETExample.Console
{
class Program
{
private static readonly CronDaemon cron_daemon = new CronDaemon();
static void Main(string[] args)
{
cron_daemon.add_job(new CronJob("* * * * *", task));
cron_daemon.start();
// Wait and sleep forever. Let the cron daemon run.
while(true) Thread.Sleep(6000);
}
static void task()
{
Console.WriteLine("Hello, world.")
}
}
}
```
Windows Service Example
=======================
``` c#
using System.Threading;
using CronNET;
namespace CronNETExample.WindowsService
{
public partial class Service : ServiceBase
{
private readonly CronDaemon cron_daemon = new CronDaemon();
public Service()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
cron_daemon.add_job(new CronJob("*/2 * * * *", task));
cron_daemon.start();
}
protected override void OnStop()
{
cron_daemon.stop();
}
private void task()
{
Console.WriteLine("Hello, world.")
}
}
}
```