Creare uno scheduler in C# con Quartz.NET
Quartz.NET è uno scheduler per .NET che si rifà al più famoso Quartz per Java.
Sono praticamente identici nel funzionamento.
In questo articolo ne vediamo un esempio in C#.
Possiamo installare la libreria con NuGet:
NuGet\Install-Package Quartz -Version 3.8.1
Qui sotto un esempio di codice; ho messo tutto insieme per brevità:
using Quartz;
using Quartz.Impl;
public class MainClass
{
private static async Task Main(string[] args)
{
StdSchedulerFactory factory = new StdSchedulerFactory();
IScheduler scheduler = await factory.GetScheduler();
await scheduler.Start();
IJobDetail job = JobBuilder.Create<TestJob>()
.WithIdentity("job1", "group1")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x => x.WithIntervalInSeconds(10).WithRepeatCount(5))
.Build();
await scheduler.ScheduleJob(job, trigger);
await Task.Delay(TimeSpan.FromSeconds(60));
await scheduler.Shutdown();
Console.WriteLine("Premi un tasto per uscire!");
Console.ReadKey();
}
}
public class TestJob : IJob
{
public async Task Execute(IJobExecutionContext context)
{
await Console.Out.WriteLineAsync("Questo è un job di test per Quartz!");
}
}
Enjoy!
c# nuget quartz
Commentami!