.NET Core FluentScheduler
1. Introduction
FluentScheduler is a powerful task scheduling library for .NET Core applications. It provides a fluent interface to define and manage recurring tasks in your application. This article will introduce you to the features and usage of FluentScheduler, along with code examples.
2. Getting Started
To use FluentScheduler in your .NET Core application, you need to install the FluentScheduler
NuGet package. You can do this by running the following command in the NuGet Package Manager Console:
Install-Package FluentScheduler
Once the package is installed, you can start using FluentScheduler in your application.
3. Creating a Simple Task
Let's start by creating a simple recurring task that prints "Hello, World!" every 5 seconds. First, create a class that inherits from Registry
and define your task inside it:
using FluentScheduler;
using System;
public class MyRegistry : Registry
{
public MyRegistry()
{
Schedule(() => Console.WriteLine("Hello, World!")).ToRunNow().AndEvery(5).Seconds();
}
}
In your application's entry point, initialize the scheduler and start it:
using FluentScheduler;
public class Program
{
public static void Main(string[] args)
{
JobManager.Initialize(new MyRegistry());
JobManager.Start();
// Keep the application running until user presses a key
Console.ReadKey();
JobManager.Stop();
}
}
When you run the application, you will see "Hello, World!" printed every 5 seconds until you press a key.
4. Advanced Task Configuration
FluentScheduler provides a wide range of options to configure your tasks. You can specify the start time, end time, interval, delay, and more. For example, let's modify our previous task to run every day at 9 AM:
public class MyRegistry : Registry
{
public MyRegistry()
{
Schedule(() => Console.WriteLine("Hello, World!"))
.ToRunEvery(1).Days()
.At(9, 0);
}
}
You can also chain multiple configurations together:
public class MyRegistry : Registry
{
public MyRegistry()
{
Schedule(() => Console.WriteLine("Hello, World!"))
.ToRunEvery(1).Weeks()
.On(DayOfWeek.Monday)
.At(9, 0)
.DelayFor(10).Minutes();
}
}
5. Error Handling
FluentScheduler allows you to handle errors that occur during task execution. You can specify an error handler method to be called when an exception is thrown:
public class MyRegistry : Registry
{
public MyRegistry()
{
Schedule(() => Console.WriteLine("Hello, World!"))
.ToRunEvery(5).Seconds()
.OnError((exception) => Console.WriteLine($"Error: {exception.Message}"));
}
}
6. Conclusion
FluentScheduler is a powerful task scheduling library that simplifies the process of managing recurring tasks in .NET Core applications. In this article, we have covered the basics of FluentScheduler and demonstrated how to create and configure tasks using code examples.
This is just a glimpse of what FluentScheduler can do. There are many more features and options available, such as task dependencies, task pausing/resuming, and more. I encourage you to explore the official documentation and experiment with FluentScheduler in your own projects. Happy scheduling!
References
- FluentScheduler GitHub repository: [
- FluentScheduler NuGet package: [