Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bamotav/Hangfire.RecurringJobAdmin
A dashboard to manage Hangfire's recurring jobs.
https://github.com/bamotav/Hangfire.RecurringJobAdmin
aspnetcore cronjob csharp dashboard hacktoberfest hangfire job-scheduler nuget plugin reflection vue-component vue-component-cron vuejs
Last synced: 6 days ago
JSON representation
A dashboard to manage Hangfire's recurring jobs.
- Host: GitHub
- URL: https://github.com/bamotav/Hangfire.RecurringJobAdmin
- Owner: bamotav
- License: mit
- Created: 2019-09-12T12:12:09.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-03-27T13:00:26.000Z (8 months ago)
- Last Synced: 2024-11-02T00:18:40.561Z (11 days ago)
- Topics: aspnetcore, cronjob, csharp, dashboard, hacktoberfest, hangfire, job-scheduler, nuget, plugin, reflection, vue-component, vue-component-cron, vuejs
- Language: C#
- Homepage: https://www.nuget.org/packages/Hangfire.RecurringJobAdmin/
- Size: 3.58 MB
- Stars: 203
- Watchers: 7
- Forks: 47
- Open Issues: 28
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Hangfire.RecurringJobAdmin
[![NuGet](https://buildstats.info/nuget/Hangfire.RecurringJobAdmin)](https://www.nuget.org/packages/Hangfire.RecurringJobAdmin/)
[![Build status](https://ci.appveyor.com/api/projects/status/u2xrias2vk727beg/branch/master?svg=true)](https://ci.appveyor.com/project/bamotav/hangfire-recurringjobadmin/branch/master)
[![Build Status](https://github.com/bamotav/Hangfire.RecurringJobAdmin/workflows/CI-HRJ/badge.svg)](https://github.com/bamotav/Hangfire.RecurringJobAdmin/actions)
[![Official Site](https://img.shields.io/badge/site-hangfire.io-blue.svg)](http://hangfire.io)
[![License MIT](https://img.shields.io/badge/license-MIT-green.svg)](http://opensource.org/licenses/MIT)![dashboard](Content/dashboard.png)
A simple dashboard to manage Hangfire's recurring jobs.
This repo is an extension for [Hangfire](https://github.com/HangfireIO/Hangfire) based on ["Hangfire.Recurring Job Extensions"](https://github.com/icsharp/Hangfire.RecurringJobExtensions/) package made by vigoss, thanks for your contribution to the community. It contains the following functionalities:
* We can use RecurringJobAttribute stored in database and presented in the administrator.
```csharp
public class RecurringJobTesting
{
[RecurringJob("*/2 * * * *", "China Standard Time", "default", RecurringJobId = "Check-File-Exists")]
public void CheckFileExists()
{
Console.WriteLine("Check File Exists");
}
}
```
* We can use DisableConcurrentlyJobExecution, this attribute allows you to not execute a task if it is already running.```csharp
public class RecurringJobTesting
{
[DisableConcurrentlyJobExecution("CheckFileExists")]
public void CheckFileExists()
{
Console.WriteLine("Check File Exists");
}
[DisableConcurrentlyJobExecution("ValidateProcess", 0, 10, "It is not allowed to perform multiple same tasks.")]
[RecurringJob("*/2 * * * *", "China Standard Time", "default", RecurringJobId = "Validate-Process")]
public void ValidateProcess()
{
Console.WriteLine("Validate Process");
}
}
```* We can create, edit jobs.
![create](Content/create.png)
* We can start, stop jobs at runtime.
![jobAgent](Content/jobAgent.png)
* So we can also start or stop the job using JobAgent static class.
```csharp
JobAgent.StopBackgroundJob("Enter the Job Id");
JobAgent.StartBackgroundJob("Enter the Job Id");
//Get all stopped jobs:
var StoppedJobs = JobAgent.GetAllJobStopped();
```
* We have a new vue component to generate cron expression, made by [@JossyDevers](https://github.com/JossyDevers).![jobAgent](Content/generatecron.png)
## Instructions
Install a package from Nuget.
```
Install-Package Hangfire.RecurringJobAdmin
```Then add this in your code:
## For DotNetCore :
for service side:
```csharp
services.AddHangfire(config => config.UseSqlServerStorage(Configuration.GetConnectionString("HangfireConnection"))
.UseRecurringJobAdmin(typeof(Startup).Assembly))
```## For NetFramework :
for startup side:
```csharp
GlobalConfiguration.Configuration.UseSqlServerStorage("HangfireConnection").UseRecurringJobAdmin(typeof(Startup).Assembly)
```## Credits
* Braulio Alvarez
## Donation
If this project help you reduce time to develop, you can give me a cup of coffee :)[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=KTW8JH379NXQL&item_name=+¤cy_code=USD&source=url)
## License
Authored by: Brayan Mota (bamotav)This project is under MIT license. You can obtain the license copy [here](https://github.com/bamotav/Hangfire.RecurringJobAdmin/blob/master/LICENSE).