Creare uno scheduler in C# con Quartz.NET

Mattepuffo's logo
Creare uno scheduler in C# con Quartz.NET

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!


Condividi

Commentami!