VOOZH about

URL: https://www.nuget.org/packages/EaCloud.Hangfire/

⇱ NuGet Gallery | EaCloud.Hangfire 9.0.1.1




👁 Image
EaCloud.Hangfire 9.0.1.1

dotnet add package EaCloud.Hangfire --version 9.0.1.1
 
 
NuGet\Install-Package EaCloud.Hangfire -Version 9.0.1.1
 
 
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="9.0.1.1" />
 
 
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EaCloud.Hangfire" Version="9.0.1.1" />
 
Directory.Packages.props
<PackageReference Include="EaCloud.Hangfire" />
 
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EaCloud.Hangfire --version 9.0.1.1
 
 
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: EaCloud.Hangfire, 9.0.1.1"
 
 
#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.
#:package EaCloud.Hangfire@9.0.1.1
 
 
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=EaCloud.Hangfire&version=9.0.1.1
 
Install as a Cake Addin
#tool nuget:?package=EaCloud.Hangfire&version=9.0.1.1
 
Install as a Cake Tool
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

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 Versions Compatible and additional computed target framework versions.
.NET net9.0 net9.0 is compatible.  net9.0-android net9.0-android was computed.  net9.0-browser net9.0-browser was computed.  net9.0-ios net9.0-ios was computed.  net9.0-maccatalyst net9.0-maccatalyst was computed.  net9.0-macos net9.0-macos was computed.  net9.0-tvos net9.0-tvos was computed.  net9.0-windows net9.0-windows was computed.  net10.0 net10.0 was computed.  net10.0-android net10.0-android was computed.  net10.0-browser net10.0-browser was computed.  net10.0-ios net10.0-ios was computed.  net10.0-maccatalyst net10.0-maccatalyst was computed.  net10.0-macos net10.0-macos was computed.  net10.0-tvos net10.0-tvos was computed.  net10.0-windows net10.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
9.0.1.1 346 10/22/2025
9.0.0.9 359 8/12/2025
9.0.0.8 261 7/5/2025
9.0.0.7 346 6/25/2025
9.0.0.6 343 6/18/2025
9.0.0.5 357 6/14/2025
9.0.0.4 393 5/8/2025
9.0.0.3 379 4/23/2025
9.0.0.2 381 4/11/2025
9.0.0.1 354 3/21/2025
8.0.1.9 335 11/15/2024
8.0.1.8 343 11/13/2024
8.0.1.7 350 10/9/2024
8.0.1.6 359 9/29/2024
8.0.1.5 353 9/13/2024
8.0.1.4 397 8/10/2024
8.0.1.3 363 8/7/2024
8.0.1.2 390 8/7/2024
8.0.1.1 349 8/7/2024
8.0.0.9 317 8/7/2024
Loading failed