Skip to content

Nuget package to easily add cron jobs to ASP.NET Core applications.

Notifications You must be signed in to change notification settings

george2giga/SimpleCronJob

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimpleCronJob

An IHostedService implementation to easily add cron like jobs (scheduled jobs) within an ASP.NET Core web application.

Usage

Install the nuget package:

Install-Package SimpleCronJob -Version 1.0.2

Implement your cron job:

public class MyCronJob : CronJobService
{
    private readonly ILogger<MyCronJob> _logger;

    public MyCronJob(IScheduleConfig<MyCronJob> config, ILogger<MyCronJob> logger)
        : base(config.CronExpression, config.TimeZoneInfo)
    {
        _logger = logger;
    }

    public override Task StartAsync(CancellationToken cancellationToken)
    {
        _logger.LogInformation("MyCronJob starts.");
        return base.StartAsync(cancellationToken);
    }

    public override Task DoWork(CancellationToken cancellationToken)
    {
        _logger.LogInformation($"{DateTime.Now:hh:mm:ss} MyCronJob is working.");
        // Add your logic here
        return Task.CompletedTask;
    }

    public override Task StopAsync(CancellationToken cancellationToken)
    {
        _logger.LogInformation("MyCronJob is stopping.");
        return base.StopAsync(cancellationToken);
    }
}

Register your cron job(s) at startup:

The scheduling is set using Cron expression with https://github.com/HangfireIO/Cronos

using SimpleCronJob;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddCronJob<MyCronJob>(c =>
{
    c.TimeZoneInfo = TimeZoneInfo.Local;
    c.CronExpression = @"0 8 * * *"; // run every day at 8:00 AM
});

// add as many cron jobs as you need
builder.Services.AddCronJob<MyOtherCronJob>(c =>
{
    c.TimeZoneInfo = TimeZoneInfo.Local;
    c.CronExpression = @"0 9 * * *"; // run every day at 9:00 AM
});

Credits

https://codeburst.io/schedule-cron-jobs-using-hostedservice-in-asp-net-core-e17c47ba06

About

Nuget package to easily add cron jobs to ASP.NET Core applications.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages