Step 1 : Create a console app named CorvelJob
Step 2 : Install Coravel, Microsoft.Extension.DependencyInjection & Microsoft.Extension.Hosting
Step 3 : Below code written in Program.cs will run in every 2 seconds
using Coravel;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
var builder = Host.CreateApplicationBuilder();
builder.Services.AddScheduler();
var app = builder.Build();
app.Services.UseScheduler(schedular =>
{
schedular.ScheduleAsync(
async () =>
{
await Task.Delay(20);
Console.WriteLine("Schiedular Time : " + DateTime.Now);
}).EverySeconds(2);
});
app.Run();
OutPut :
Schiedular Time : 3/15/2024 3:02:40 PM
Schiedular Time : 3/15/2024 3:02:42 PM
Schiedular Time : 3/15/2024 3:02:44 PM
You can also configure above code that run only on weekend that to on Sunday
schedular.ScheduleAsync(
async () =>
{
await Task.Delay(20);
Console.WriteLine("Schiedular Time : " + DateTime.Now);
}).Weekly().Weekend().Sunday().Once();
you can invoke you class file also. Let take an example of MailerTask which sends mail only on weekend
Create MailerTask.cs
using Coravel;
using CorvelJob;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
var builder = Host.CreateApplicationBuilder();
builder.Services.AddScheduler();
builder.Services.AddTransient<MailerTask>();
var app = builder.Build();
app.Services.UseScheduler(schedular =>
{
schedular.Schedule<MailerTask>()
.Weekly().Weekend().Sunday()
.PreventOverlapping("identifier");
});
app.Run();
Output :
info: CorvelJob.MailerTask[0]
Mail sent @ 03/15/2024 15:13:20
info: CorvelJob.MailerTask[0]
Mail sent @ 03/15/2024 15:15:20
No comments:
Post a Comment