导航菜单

红嫁衣-.NET和.Net Core平台下优异的分布式可视化后端使命办理结构

介绍

Hangfire是.net渠道和.net core渠道下的一个优班车异的开源守时使命结构,它能够便利轻松地将守时使命集成到你的程序中,并且功用强壮,。支撑CPU和I / O密集型,长时刻运转和短期运转的后端作业。无需Windows服务/使命方案程序。供给Redis,SQL Server,SQL Azure和MSMQ耐久化的支撑。搭档还供给了集成了本地化的可视化界面能够高雅的对使命进行手动办理,且支撑中文界面。



Github地址

https://github.com/HangfireIO/Hangfire

怎么装置运用?

在.net 和.net core的C#应用程序中,最便利咱们运用的第三方库办理莫过于Nuget了,因而你能够简略的查找HangFire,截止发文日期,版别是1.7.6,如下图:



或许在程序包办理器中履行以下指令,两种办法为所欲为

Install-Package Hangfire

快速开端

以下是一个最简略的代码片段,用于装备HangFire,代码是以SQLServer为例的


public void Configuration(IAppBuilder app)
{
GlobalConfiguration.Configuration.UseSqlServerStorage("");

app.UseHangfireServer();
app.UseHangfireDashboard();
}

功用简介

本文不触及怎么在详细的应用程序怎么调用,以下是对其功红嫁衣-.NET和.Net Core平台下优异的分布式可视化后端使命办理结构用进行简略的介绍,也是官方Github上提及的一些常用功用。

  • 即发即消失的使命
BackgroundJob.Enqueue(() => Console.W红嫁衣-.NET和.Net Core平台下优异的分布式可视化后端使命办理结构riteLine("Simple!"));

  • 延时使命

仅在给定的时刻后履行的方案的后台使命

BackgroundJob.Schedule(() => Console.WriteLine("Reliable!"), TimeSpan.FromDays(7));

  • 重复的守时使命

重复性的使命便是这么简略,只需调用以下办法即可运用CRON表达式履行任何类型的重复使命,因为支撑CRON表达式,所以其是支撑到秒级的

RecurringJob.AddOrUpdate(() => Console.WriteLine("Transparent!"), Cron.Daily);

  • 多使命彼此协作

答应多个使命之间彼此调度,完结愈加杂乱的调度使命

var id = BackgroundJob.Enqueue(() => Console.WriteLine("Hello, "));
BackgroundJob.ContinueWith(id, () => Console.WriteLine("world!"));

Web作业

你能够在任何兼容OWIN的应用程序结构中处理后台使命,包含ASP.NET MVC,ASP.NET Web API,FubuMvc,Nancy等。

app.UseHangfireServer();

在控制台应用程序,Windows服务,Azure Worker Role等中:

using (new BackgroundJobServer())
{
Console.WriteLine("Hangfire Server started. Press ENTER to exit...");
Console.ReadLi红嫁衣-.NET和.Net Core平台下优异的分布式可视化后端使命办理结构ne();红嫁衣-.NET和.Net Core平台下优异的分布式可视化后端使命办理结构
}

运用情况

以下一些截图是笔者装备在进行中的项目中的一个实例,简略的对其办理面板有一个了解

  • 仪表盘对其使命履行情况一望而知


  • 作业行列一览

使命行列包含方案的使命、履行中的使命、完结的使命、失利的使命、删去的使命、以及等待中的使命,



还能够检查履行情况以便于是否需求手动重试



  • 周期红嫁衣-.NET和.Net Core平台下优异的分布式可视化后端使命办理结构使命的列表办理

守时的周期性使命,在这里很明晰,并且能够手动履行,笔者现在就干了一件事,因为项目初期手动保护一部分根底数据是很有或许的,为了避免一些根底数据缓存的及时性,在更新完数据库后可手动履行使命重建缓存,现在一个使命定了一个月时刻,这样就不用每次都重新启动应用程序了。



  • 运转的服务器

因为HangFire是分布式的,能够再仪表盘看到运转的服务器



总结

HangFire肯定是一个值得运用的分布式使命结构,社区版永久免费,即使是商用情况下红嫁衣-.NET和.Net Core平台下优异的分布式可视化后端使命办理结构也是免费的,大多数情况下社区版别现已够用,除非你有非常杂乱的使命需求完成,也能够经过收费版别的,支撑的功用更强壮!假如你还有更好的引荐能够在谈论区留言共享!



二维码