EaCloud.Hangfire 7.0.9.4

There is a newer version of this package available.
See the version list below for details.
dotnet add package EaCloud.Hangfire --version 7.0.9.4                
NuGet\Install-Package EaCloud.Hangfire -Version 7.0.9.4                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EaCloud.Hangfire" Version="7.0.9.4" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add EaCloud.Hangfire --version 7.0.9.4                
#r "nuget: EaCloud.Hangfire, 7.0.9.4"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install EaCloud.Hangfire as a Cake Addin
#addin nuget:?package=EaCloud.Hangfire&version=7.0.9.4

// Install EaCloud.Hangfire as a Cake Tool
#tool nuget:?package=EaCloud.Hangfire&version=7.0.9.4                

EaCloud Hangfire 后台任务组件

Member project of EaCloud Team NuGet Badge GitHub license

说明

EaCloud Hangfire 后台任务组件,封装基于 Hangfire 后台任务的服务端实现。

用法

可按照如下配置方式使用:

  1. 通过nuget引用 EaCloud.Hangfire 程序集
Install-Package EaCloud.Hangfire
  1. appsettings.json 中 的 EaCloud 节点下添加如下配置节点
{
   "Hangfire": {
     "Title": "EaCloud任务管理", //显示在仪表板上的标题
     "ServerName": "EaCloudHangfire", //服务器名称
     "WorkerCount": 20, //并发任务数  --超出并发数。将等待之前任务的完成  (推荐并发线程是cpu 的 5倍)
     "StorageType": "Sqlserver", //存储类型:"Sqlserver""PostgreSql""SQLite""MySql""Oracle""Mongo""Redis""Memory"
     //存储连接字符串:指定的数据库名必须已经存在,可以手动创建空数据库或者使用当前数据库
     "StorageConnectionString": "Data Source=127.0.0.1;Initial Catalog=EaCloudDEV.Hangfire;User ID=sa;Password=p@ssw0rd;Pooling=true;Min Pool Size=1;Max Pool Size=60;Integrated Security=false;Connect Timeout=60;Application Name=EaCloud",
     "DashboardUrl": "/hangfire", //仪表盘URL路径
     "AuthorizationType": "Basic", //授权访问类型:"Anonymous""Basic"
     //Hangfire基本身份验证的选项,当 AuthorizationType = "Basic" 时生效。
     "BasicOptions": {
       "SslRedirect": false, //SSL重定向
       "RequireSsl": false, //需要SSL连接才能访问Hangfire Dashboard
       "LoginCaseSensitive": false, //登录检查是否区分大小写
       //访问Hangfire仪表板的用户列表
       "Users": [
         {
           //登录名
           "UserId": "用户身份标识",
           //登录密码
           "Password": "访问密码"
         }
       ]
     },
     "Enabled": true //是否启用
   } 
}
  1. 若存储类型设为数据库类型(SqlserverPostgreSqlSQLiteMySqlOracleMongo),则需要按照连接串去新建Hangfire用的空数据库(只要库就可以,表会自动生成)。
  2. 启动web项目后,访问http(s)://ip:port/(DashboardUrl)即可打开Hangfire仪表盘界面。
  3. 后端使用Hangfire代码示例 5.1. 项目中新建XXXHangfireJobRunner实现类并添加[Dependency(ServiceLifetime.Singleton)]单例服务特性,继承IHangfireJobRunner接口在Start方法中添加Hangfire任务逻辑
#region "Hangfire作业运行器"
/// <summary>
/// Hangfire作业运行器
/// </summary>
[Dependency(ServiceLifetime.Singleton)]
public class HangfireJobRunner : IHangfireJobRunner
{
    /// <summary>
    /// 启动作业运行器
    /// </summary>
    public void Start()
    {
        //队列任务
        BackgroundJob.Enqueue(() => Console.WriteLine($@"队列任务"));

        //延时任务
        var jobId = BackgroundJob.Schedule(() => Console.WriteLine($@"延时任务"), TimeSpan.FromMinutes(1));

        //延续性任务执行
        BackgroundJob.ContinueJobWith(jobId, () => Console.WriteLine($@"延续性任务执行"));

        //定时任务
        RecurringJob.AddOrUpdate("JobId1", () => Console.WriteLine($@"定时任务:每年的4月12号15点52分任意秒执行 没加时区 小时+8"), "* 52 15 12 4 *");   //每年的4月12号15点52分任意秒执行 没加时区 小时+8
        RecurringJob.AddOrUpdate("JobId2", () => Console.WriteLine($@"定时任务:每分钟执行一次"), Cron.Minutely);      //每分钟执行一次。
        RecurringJob.AddOrUpdate("JobId3", () => Console.WriteLine($@"定时任务:每天18点36分 当前时区"), Cron.Daily(18, 36), new RecurringJobOptions { TimeZone = TimeZoneInfo.Local });  //每天18点36分 当前时区

        //本机示例
        RecurringJob.AddOrUpdate<TestHangfireJob>("TestHangfireJob_Test", m => m.Test(), Cron.Minutely, new RecurringJobOptions { TimeZone = TimeZoneInfo.Local });
        RecurringJob.AddOrUpdate<TestHangfireJob>("TestHangfireJob_TestAsync", m => m.TestAsync(), Cron.Minutely, new RecurringJobOptions { TimeZone = TimeZoneInfo.Local });
    }
}
#endregion

5.2. 若需要使用注入模式使用,参考上述代码本机示例新建XXXHangfireJob,定义如下结构代码

#region "测试Hangfire作业"
/// <summary>
/// 测试Hangfire作业
/// </summary>
public class XXXHangfireJob
{
    #region "字段"
    #region "私有只读-身份认证上下文"
    /// <summary>
    /// 私有只读-身份认证上下文
    /// </summary>
    private readonly IIdentityContract _identityContract;
    #endregion
    #region "私有只读-服务提供者"
    /// <summary>
    /// 私有只读-服务提供者
    /// </summary>
    private readonly IServiceProvider _provider;
    #endregion

    #endregion

    #region "属性"
    #region "获取 日志对象"
    /// <summary>
    /// 获取 日志对象
    /// </summary>
    protected ILogger Logger => _provider.GetLogger(GetType());
    #endregion

    #endregion

    #region "构造函数"
    #region "初始化一个测试Hangfire作业的新实例"
    /// <summary>
    /// 初始化一个测试Hangfire作业 <see cref="XXXHangfireJob"/> 的新实例
    /// </summary>
    /// <param name="identityContract">身份认证上下文</param>
    /// <param name="provider">服务提供者</param>
    public XXXHangfireJob(IIdentityContract identityContract, IServiceProvider provider)
    {
        _identityContract = identityContract;
        _provider = provider;
    }
    #endregion

    #endregion

    #region "方法"
    #region "同步测试方法"
    /// <summary>
    /// 同步测试方法
    /// </summary>
    /// <returns></returns>
    public void Test()
    {
        //TODO:Your Coding...
        Logger.LogDebug(I18N.T("HangfireTest", "Hangfire Test:{0}", false, DateTime.Now.ToString()));
    }
    #endregion
    #region "异步测试方法"
    /// <summary>
    /// 异步测试方法
    /// </summary>
    /// <returns></returns>
    public async Task TestAsync()
    {
        //TODO:Your Coding...
        Logger.LogDebug(I18N.T("HangfireTestAsync", "Hangfire TestAsync:{0}", false, DateTime.Now.ToString()));

        await Task.CompletedTask;
    }
    #endregion

    #endregion

}
    #endregion
  1. 要禁用Hangfire,设置Enabled: false

交流

QQ WeChat
QQ群号:863605868 微信号:SeonHu
Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on EaCloud.Hangfire:

Package Downloads
EaCloud.Pack.Message

EaCloud 消息模块,封装公告讯息收发及记录管理功能。

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
8.0.1.9 118 2 months ago
8.0.1.8 113 2 months ago
8.0.1.7 134 3 months ago
8.0.1.6 122 3 months ago
8.0.1.5 143 4 months ago
8.0.1.4 153 5 months ago
8.0.1.3 138 5 months ago
8.0.1.2 137 5 months ago
8.0.1.1 138 5 months ago
8.0.0.9 126 5 months ago
8.0.0.8 86 5 months ago
8.0.0.7 88 5 months ago
8.0.0.6 99 5 months ago
8.0.0.5 91 5 months ago
8.0.0.4 71 5 months ago
8.0.0.3 112 5 months ago
8.0.0.2 123 6 months ago
8.0.0.1 126 6 months ago
7.0.9.4 136 6 months ago
7.0.9.3 158 6 months ago
7.0.9.2 151 6 months ago
7.0.9.1 152 6 months ago
7.0.8.9 164 6 months ago
7.0.8.8 156 6 months ago
7.0.8.7 155 7 months ago
7.0.8.6 160 7 months ago
7.0.8.5 153 7 months ago
7.0.8.4 167 8 months ago
7.0.8.3 176 8 months ago
7.0.8.2 148 8 months ago
7.0.8.1 180 8 months ago
7.0.7.9 159 8 months ago
7.0.7.8 151 8 months ago
7.0.7.7 143 8 months ago
7.0.7.6 139 8 months ago
7.0.7.5 206 8 months ago
7.0.7.4 160 8 months ago
7.0.7.3 177 8 months ago
7.0.7.2 168 9 months ago
7.0.7.1 160 9 months ago
7.0.6.9 166 9 months ago
7.0.6.8 161 9 months ago
7.0.6.7 159 9 months ago
7.0.6.6 190 9 months ago
7.0.6.5 167 9 months ago
7.0.6.4 178 9 months ago
7.0.6.3 169 9 months ago
7.0.6.2 163 9 months ago
7.0.6.1 168 9 months ago
7.0.5.9 178 9 months ago
7.0.5.8 160 10 months ago
7.0.5.7 182 10 months ago
7.0.5.6 184 10 months ago
7.0.5.5 187 10 months ago
7.0.5.4 205 10 months ago
7.0.5.3 176 10 months ago
7.0.5.2 195 3/6/2024
7.0.5.1 191 2/21/2024
7.0.4.9 179 2/21/2024
7.0.4.8 179 2/18/2024
7.0.4.7 174 2/5/2024
7.0.4.6 184 2/1/2024
7.0.4.5 171 1/26/2024
7.0.4.4 189 1/22/2024
7.0.4.3 184 1/17/2024
7.0.4.2 150 1/16/2024
7.0.4.1 172 1/16/2024
7.0.3.9 173 1/15/2024
7.0.3.8 203 1/3/2024
7.0.3.7 199 12/28/2023
7.0.3.6 158 12/27/2023
7.0.3.5 188 12/22/2023
7.0.3.4 200 12/22/2023
7.0.3.3 213 12/13/2023
7.0.3.2 166 12/13/2023
7.0.3.1 204 12/12/2023
7.0.2.9 222 11/26/2023
7.0.2.8 225 11/26/2023
7.0.2.7 227 9/26/2023
7.0.2.6 200 9/25/2023
7.0.2.5 197 9/15/2023
7.0.2.4 223 7/27/2023
7.0.2.3 236 7/22/2023
7.0.2.2 251 7/22/2023
7.0.2.1 235 7/21/2023
7.0.1.9 217 7/21/2023
7.0.1.8 230 7/20/2023
7.0.1.7 223 7/20/2023
7.0.1.6 279 7/4/2023
7.0.1.5 235 6/16/2023
7.0.1.4 239 6/13/2023
7.0.1.3 273 6/8/2023
7.0.1.2 268 6/2/2023
7.0.1.1 270 5/11/2023
7.0.0.9 268 5/10/2023
7.0.0.8 296 5/10/2023
7.0.0.7 321 4/19/2023
7.0.0.6 320 4/18/2023
7.0.0.5 380 3/27/2023
7.0.0.4 357 3/23/2023
7.0.0.3 402 1/31/2023
7.0.0.2 421 1/30/2023
7.0.0.1 382 12/24/2022
6.0.2.5 552 11/16/2022
6.0.2.4 568 11/10/2022
6.0.2.3 711 10/11/2022
6.0.2.2 751 9/23/2022
6.0.2.1 776 8/14/2022
6.0.1.9 795 8/13/2022
6.0.1.8 824 6/6/2022
6.0.1.7 815 5/26/2022
6.0.1.6 859 5/11/2022
6.0.1.5 883 5/10/2022
6.0.1.4 967 4/8/2022
6.0.1.3 981 4/2/2022
6.0.1.2 995 4/2/2022
6.0.1.1 1,024 3/18/2022
6.0.0.9 980 3/5/2022
6.0.0.8 977 2/19/2022
6.0.0.7 960 2/15/2022
6.0.0.6 982 2/14/2022
6.0.0.5 1,077 1/28/2022
6.0.0.4 1,148 1/13/2022
6.0.0.3 1,128 1/12/2022
6.0.0.2 1,382 12/21/2021
6.0.0.1 1,557 12/13/2021
5.0.3.7 1,954 10/16/2021
5.0.3.6 1,100 10/14/2021
5.0.3.5 1,084 10/13/2021
5.0.3.4 1,244 10/8/2021
5.0.3.3 1,185 9/17/2021
5.0.3.2 1,302 9/16/2021
5.0.3.1 1,203 9/15/2021
5.0.2.9 1,240 9/15/2021
5.0.2.8 1,348 8/31/2021
5.0.2.7 1,310 8/28/2021
5.0.2.6 1,256 8/22/2021
5.0.2.5 1,193 8/13/2021
5.0.2.4 1,166 8/13/2021
5.0.2.3 1,124 7/8/2021
5.0.2.2 1,061 7/1/2021
5.0.2.1 1,175 6/16/2021
5.0.1.9 1,062 5/12/2021
5.0.1.8 970 5/9/2021
5.0.1.7 1,114 5/7/2021
5.0.1.6 1,113 4/17/2021
5.0.1.5 1,050 4/16/2021
5.0.1.4 1,039 4/15/2021
5.0.1.3 1,044 4/15/2021
5.0.1.2 1,096 4/12/2021