hard-rox / recron

ReCron is a fully-featured .NET library for creating and running Cron/Scheduled jobs using background service for .NET Core 3.1, .NET 5 and upwords.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ReCron

NuGet Github Workflow Contributors Downloads

ReCron is a fully-featured .NET library for creating and running Cron/Scheduled jobs using background service for .NET Core 3.1, .NET 5 and upwords.

Compatibility

.NET Version Supported Remark
.NET 6
.NET 5
.NET Core 3.1
.NET Core (1.0 - 3.0) This library is targeting .NET Core 3.1, .NET 5 ++
.NET Framework (1.0 - 4.8) This library is targeting .NET Core 3.1, .NET 5 ++

Installation

Package Manager

Install-Package ReCron -Version 0.2.1

.NET CLI

dotnet add package ReCron --version 0.2.1

Package Reference

<PackageReference Include="ReCron" Version="0.2.1" />

Usage

  1. Create a job class by inheriting CronWorkerService class and implement WorkerProcess method.
class TestJob : CronWorkerService
{
    public TestJob(IWorkerConfig<TestJob1> config, ILogger<TestJob1> logger) : base(config.CronExpression, TimeZoneInfo.Local)
    {

    }
    protected override async Task WorkerProcess(CancellationToken stoppingToken)
    {
        await Task.Run(() => Console.WriteLine("TestJob\t" + DateTime.Now.ToString()));
    }
}
  1. Inject your job with cron expression and TimeZoneInfo
services.AddCronWorker<TestJob>(config =>
{
    config.CronExpression = "*/1 * * * * *";
    config.TimeZoneInfo = TimeZoneInfo.Local;
});
  • To get currently injected Jobs with status:
ReCronContainer.GetWorkers();
  • Worker/Job status is an enum
public enum WorkerStatus
{
    Added = 0,
    Running = 1,
    Stopped = 2,
}
  • To stop a job:
ReCronContainer.StopWorker(name);
// name is fully qualified name of job class
  • To start a job:
ReCronContainer.StartWorker(name);
// name is fully qualified name of job class

For working examples see /demos directory.

Contribution

Authors

  • Rasedur Rahman Roxy - Planning and Development - Twitter

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

  • Hat tip to anyone whose code was used

About

ReCron is a fully-featured .NET library for creating and running Cron/Scheduled jobs using background service for .NET Core 3.1, .NET 5 and upwords.

License:MIT License


Languages

Language:C# 100.0%