Hangfire .NET任务调度框架实例

简介: # 1、介绍Hangfire是一个开源的.NET任务调度框架,提供了内置集成化的控制台(后台任务调度面板),可以直观明了的查看作业调度情况。# 2、Nuget安装![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231031-119e3068.png?x-cos-security-token=baeOYKJ0BOuKXaDG6L8qKX7pdH823CLaaefd8181d9b33eccf4b2a2f35cd15dd7jLbyf

1、介绍

Hangfire是一个开源的.NET任务调度框架,提供了内置集成化的控制台(后台任务调度面板),可以直观明了的查看作业调度情况。

2、Nuget安装

请在此添加图片描述

3、编写代码

1)测试服务:FirstStartService

using Microsoft.Extensions.Hosting;
namespace HangfireTest.Service
{
   
   
    public class FirstStartService: IHostedService
    {
   
   
        public async Task StartAsync(CancellationToken cancellationToken)
        {
   
   
            await Task.Run(() =>
            {
   
   
                Console.WriteLine("FirstStartService......StartAsync");
            }, cancellationToken);
            //hangfire定时任务
            var id = Hangfire.BackgroundJob.Enqueue(() => Console.WriteLine("插入队列的任务"));
            Hangfire.BackgroundJob.Schedule(() => Console.WriteLine("延迟的任务"), TimeSpan.FromSeconds(5));
            Hangfire.RecurringJob.AddOrUpdate(() => Console.WriteLine("循环执行的任务"), Hangfire.Cron.Minutely);
            Hangfire.BackgroundJob.ContinueJobWith(id, () => Console.WriteLine("指定任务执行之后执行的任务"));
        }
        public async Task StopAsync(CancellationToken cancellationToken)
        {
   
   
            await Task.Run(() =>
            {
   
   
                Console.WriteLine("FirstStartService......StopAsync");
            }, cancellationToken);
        }
    }
}

2) 测试服务:SecondStartService

using Microsoft.Extensions.Hosting;
namespace HangfireTest.Service
{
   
   
    public class SecondStartService: IHostedService
    {
   
   
        public async Task StartAsync(CancellationToken cancellationToken)
        {
   
   
            await Task.Run(() =>
            {
   
   
                Console.WriteLine("SecondStartService......StartAsync");
            }, cancellationToken);
        }
        public async Task StopAsync(CancellationToken cancellationToken)
        {
   
   
            await Task.Run(() =>
            {
   
   
                Console.WriteLine("SecondStartService......StopAsync");
            }, cancellationToken);
        }
    }
}

3)Startup.cs注入测试服务和Hangfire(此实例项目为VS2022 .NET6所建的ASP.NET Core Web API测试项目 Program.cs和其他版本建的项目有所区别,但注入方式没区别)

/// <summary>
/// 应用程序的入口点和生命周期 -- 应用程序启动起处理的任务
/// </summary>
builder.Services.AddHostedService<FirstStartService>();
builder.Services.AddHostedService<SecondStartService>();

/// <summary>
/// Hangfire定时任务
/// </summary>
builder.Services.AddHangfire(x => x.UseSqlServerStorage("Data Source=localhost;Initial Catalog=Test;Integrated Security=True;")); // SqlServer
builder.Services.AddHangfireServer();

/// <summary>
/// Hangfire定时任务
/// </summary>
app.UseHangfireDashboard();

4、访问方式

访问调度控制面板:
本地访问方式:https://localhost:端口号/hangfire/

5、效果图

请在此添加图片描述

6、相关链接

① Hangfire官网
② Hangfire中文文档
③ Hangfire Github源码

一个简单的实例,如有帮助,欢迎点赞关注收藏!

目录
相关文章
|
21天前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
21天前
|
开发框架 JavaScript 前端开发
5个.NET开源且强大的快速开发框架(帮助你提高生产效率)
5个.NET开源且强大的快速开发框架(帮助你提高生产效率)
131 4
|
1天前
|
开发框架 JavaScript 前端开发
分享7个.NET开源、功能强大的快速开发框架
分享7个.NET开源、功能强大的快速开发框架
|
1天前
|
SQL JavaScript NoSQL
.NET有哪些好用的定时任务调度框架
.NET有哪些好用的定时任务调度框架
|
1天前
|
人工智能 自然语言处理 算法
分享几个.NET开源的AI和LLM相关项目框架
分享几个.NET开源的AI和LLM相关项目框架
|
8天前
|
开发框架 .NET C#
使用C#进行.NET框架开发:深入探索与实战
【5月更文挑战第28天】本文探讨了C#在.NET框架中的应用,展示了其作为强大编程语言的特性,如类型安全、面向对象编程。C#与.NET框架的结合,提供了一站式的开发环境,支持跨平台应用。文中介绍了C#的基础知识,如数据类型、控制结构和面向对象编程,以及.NET的关键技术,包括LINQ、ASP.NET和WPF。通过一个实战案例,展示了如何使用C#和ASP.NET开发Web应用,包括项目创建、数据库设计、模型和控制器编写,以及视图和路由配置。本文旨在揭示C#在.NET开发中的深度和广度,激发开发者探索更多可能性。
|
21天前
|
人工智能 自然语言处理 算法
分享几个.NET开源的AI和LLM相关项目框架
分享几个.NET开源的AI和LLM相关项目框架
|
21天前
|
开发框架 网络协议 .NET
深入.net框架
深入.net框架
15 0
|
21天前
|
算法 BI API
C#/.NET/.NET Core优秀项目和框架2024年1月简报
C#/.NET/.NET Core优秀项目和框架2024年1月简报
|
21天前
|
PHP Windows
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)