{"id":20918183,"url":"https://github.com/ieuanwalker/hangfire.recurringjob","last_synced_at":"2025-10-09T10:44:00.477Z","repository":{"id":204719888,"uuid":"697381245","full_name":"IeuanWalker/Hangfire.RecurringJob","owner":"IeuanWalker","description":"Automatically generates the recurring job registration code using source generators","archived":false,"fork":false,"pushed_at":"2025-04-25T19:38:19.000Z","size":93,"stargazers_count":9,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-25T19:43:46.468Z","etag":null,"topics":["hangfire","recurring-jobs","source-generator"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IeuanWalker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"IeuanWalker"}},"created_at":"2023-09-27T15:59:50.000Z","updated_at":"2025-04-14T18:46:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"bff16517-bba0-4fb4-b7e1-77aefc9eca06","html_url":"https://github.com/IeuanWalker/Hangfire.RecurringJob","commit_stats":null,"previous_names":["ieuanwalker/hangfire.recurringjob.generator","ieuanwalker/hangfire.recurringjob"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IeuanWalker%2FHangfire.RecurringJob","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IeuanWalker%2FHangfire.RecurringJob/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IeuanWalker%2FHangfire.RecurringJob/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IeuanWalker%2FHangfire.RecurringJob/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IeuanWalker","download_url":"https://codeload.github.com/IeuanWalker/Hangfire.RecurringJob/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253942239,"owners_count":21988016,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hangfire","recurring-jobs","source-generator"],"created_at":"2024-11-18T16:38:03.328Z","updated_at":"2025-10-09T10:43:55.424Z","avatar_url":"https://github.com/IeuanWalker.png","language":"C#","funding_links":["https://github.com/sponsors/IeuanWalker"],"categories":[],"sub_categories":[],"readme":"# Hangfire.RecurringJob [![Nuget](https://img.shields.io/nuget/v/IeuanWalker.Hangfire.RecurringJob)](https://www.nuget.org/packages/IeuanWalker.Hangfire.RecurringJob) [![Nuget](https://img.shields.io/nuget/dt/IeuanWalker.Hangfire.RecurringJob)](https://www.nuget.org/packages/IeuanWalker.Hangfire.RecurringJob) \n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![Build](https://github.com/IeuanWalker/Hangfire.RecurringJob/actions/workflows/build.yml/badge.svg)](https://github.com/IeuanWalker/Hangfire.RecurringJob/actions/workflows/build.yml)\n\nAutomatically generates the recurring job registration code using source generators\n\n## How to use it?\n1. Install the [NuGet package](https://www.nuget.org/packages/IeuanWalker.Hangfire.RecurringJob) into your project.\n```\nInstall-Package IeuanWalker.Hangfire.RecurringJob\n```\n\n2. Add the `RecurringJob` attribute to a class, and create an `Execute()` method.\n```csharp\n[RecurringJob]\npublic class RecurringJob1\n{\n\tpublic Task Execute()\n\t{\n\t\tthrow new NotImplementedException();\n\t}\n}\n\n[RecurringJob(\"* * * *\")]\npublic class RecurringJob2\n{\n\tpublic void Execute()\n\t{\n\t\tthrow new NotImplementedException();\n\t}\n}\n\n[RecurringJob(\"* * * *\", \"Priority\")]\npublic class RecurringJob3\n{\n\tpublic void Execute()\n\t{\n\t\tthrow new NotImplementedException();\n\t}\n}\n\n[RecurringJob]\n[RecurringJob(\"*/5 * * * *\", \"GMT\", \"Priority\", \"DataRetention\")]\npublic class RecurringJob4\n{\n\tpublic void Execute()\n\t{\n\t\tthrow new NotImplementedException();\n\t}\n}\n```\n3. Register the recurring jobs\n\u003e Once a `RecurringJob` attribute has been added to a class in your project an extension method for `IApplicationBuilder` will automatically be created.\n\u003e The extension method name convention is AddRecurringJobsFrom + your assembly name.\n```csharp\napp.AddRecurringJobsFromExampleProject();\n```\n\n## Example\nHere is an example of what it looks like in use - \n\u003e Left is the example code, and right is the generated code\n\n![image](https://github.com/IeuanWalker/Hangfire.RecurringJob.Generator/assets/6544051/cef12771-5178-46cf-9264-dbb54654efc6)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fieuanwalker%2Fhangfire.recurringjob","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fieuanwalker%2Fhangfire.recurringjob","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fieuanwalker%2Fhangfire.recurringjob/lists"}