游戏技术文章

HangFire概述

时间:2017-4-1 16:00:55  作者:棋牌资源网  来源:棋牌资源网  查看:7866  评论:0
内容摘要:概述  Hangfire允许您以非常简单但可靠的方式在请求处理管道外调用方法。这些方法调用是在后台独立线程中执行的,我们称之为后台任务。HangFire库实现原理由三个主要组件组成:客户端,存储和服务器。以下是一个小图,描述了Hangfire中的主要进程:适用平台Hangfire...

概述

  Hangfire允许您以非常简单但可靠的方式在请求处理管道外调用方法。这些方法调用是在后台独立线程中执行的,我们称之为后台任务。

HangFire库实现原理由三个主要组件组成:客户端,存储和服务器。以下是一个小图,描述了Hangfire中的主要进程:

HangFire概述

适用平台

Hangfire不受特定.NET应用程序类型的限制。您可以在ASP.NET Web应用程序,non-ASP.NET web applications,控制台应用程序Windows服务中使用它。以下是适用平台:

  • .NET Framework 4.5
  • Persistent storage (下面有列出)
  • Newtonsoft.Json library ≥ 5.0.1

客户端

您可以使用Hangfire创建任何类型的后台任务:fire-and-forget(释放方法调用),延迟(在一段时间后执行)和循环(按时间循环执行等)。

Hangfire不需要你创建特殊的类。后台任务可以基于常规静态或实例方法调用。如下是实例方法调用:

var client = new BackgroundJobClient();

client.Enqueue(() => Console.WriteLine("Easy!"));
client.Delay(() => Console.WriteLine("Reliable!"), TimeSpan.FromDays(1));

还有更简单的方法来创建后台任务 - BackgroundJob类允许您使用静态方法完成方法的创建。如下是静态方法调用:

BackgroundJob.Enqueue(() => Console.WriteLine("Hello!"));

在Hangfire序列化给定信息并将其保存在持久化库中后,会控制权返回给一调用者

给定信息:就是传递给HangFire的参数,方法体,执行间隔等

任务存储

HangeFire在一个持久化库保存后台任务和其他涉及后台任务运行的信息。持久化库有助于后台作业在应用程序重新启动后恢复任务列表这是使用CLR的线程池和Hangfire执行后台任务的主要区别。HangFire支持不同的存储后台:

SQL Server存储可以通过MSMQ或RabbitMQ授权来降低处理延迟。

GlobalConfiguration.Configuration.UseSqlServerStorage("db_connection");

后台服务

后台任务由Hangfire Server 处理它被实现为一组专用(非线程池的)后台线程,它从存储器中获取作业任务并处理它们。服务器还负责保持存储干净,并自动删除旧数据。

你需要做的是创建一个BackgroundJobServer的实例并开始处理一些事情:

using (new BackgroundJobServer())
{
    Console.WriteLine("Hangfire Server started. Press ENTER to exit...");
    Console.ReadLine();
}

Hangfire为每个存储后台使用可靠的提取算法,因此您可以在Web应用程序中启动后台处理程序,而不会在应用程序重新启动或进程终止等情况下丢失后台任务。

总结

原先我们处理后台任务,一般是有自己独立的Windows Service,负责Windows Service的运行,维护后台任务的运行,审计记录,错误处理,还有后台任务有关的参数的保存,现在有了HangFire可以把这些任务都给HangFire,我们只需要处理业务,可以简化我们的工作量。

 

英文原文:http://docs.hangfire.io/en/latest/index.html


标签:HangFire概述 

欢迎加入VIP,【VIP售价:只要288元永久VIP会员】畅享商业棋牌游戏程序下载,点击开通!

下载说明


☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,

☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!

☉唯一站长QQ:1004003180  [人格担保-本站注重诚信!]

☉购买建议E-mail:1004003180@qq.com   源码收购 E-mail:1004003180@qq.com    

☉本站文件解压密码  【文章内都自带解压密码,每个密码不同!】


本站提供的所有源码,均来源站长提供,仅学习交流 浙ICP备09009969号

由此产生不良后果和法律责任与本站无关,如果侵犯了您的版权,请来信告知 1004003180@qq.com 将及时更正和删除! 

Copyright © 2008-2022 棋牌资源网,你身边的棋牌资源下载站    All Rights Reserved