1.安装:

hangfire包、StackExchange.Redis(abp下的hangfire则安装abp.hangfire)

2.配置

startup文件configuration方法添加以下代码

GlobalConfiguration.Configuration.UseRedisStorage("127.0.0.1:6379");//redis配置
app.UseHangfireServer(new BackgroundJobServerOptions() {ServerName="testserver", Queues=new string[] { "testqueue"} });//开启hangfire服务并进行初始化
app.UseHangfireDashboard();//使用仪盘表

3使用

 public class HomeController : KenzoTestControllerBase
{
private readonly IBackgroundJobManager _backgroundJobManager;
private readonly ITestOrder _testOrderManager;
public HomeController(IBackgroundJobManager backgroundJobManager
, ITestOrder testOrderManager
)
{
_backgroundJobManager = backgroundJobManager;
_testOrderManager = testOrderManager;
}
public ActionResult Index()
{
//List<string> strList = new List<string>();
//strList.Add("母鸡啊");
//strList.Add("我母鸡啊");
//strList.Add("我真系母鸡啊");
//ViewData["Test"] = strList;
return View();
//return View("~/App/Main/views/layout/layout.cshtml"); //Layout of the angular application.
}
/// <summary>
/// 原生hangfire
/// </summary>
/// <returns></returns>
public async Task Test()
{
BackgroundJob.Enqueue(() => _testOrderManager.CreateOrder(new Orders.Order() { Description="",Id=Guid.NewGuid(),Money=,Num="clearlove777"}));
}
/// <summary>
/// abp.hangfire
/// </summary>
/// <returns></returns>
public async Task Test2()
{
_backgroundJobManager.Enqueue<TestJob, Orders.Order>(new Orders.Order() { Description = "", Id = Guid.NewGuid(), Money = , Num = "clearlove777777" });
}
public class TestJob : IBackgroundJob<Order>, ITransientDependency
{
private readonly ITestOrder _testOrderManager; public TestJob(ITestOrder testOrderManager)
{
_testOrderManager = testOrderManager; } public async void Execute(Order args)
{
await _testOrderManager.CreateOrder(args);
}
}
 public interface ITestOrder
{ /// <summary>
/// 添加订单
/// </summary>
/// <param name="ordreId"></param>
/// <returns></returns>
Task<Order> CreateOrder(Order args);
}
[Hangfire.Queue("testqueue")]
public class TestOrder : ITestOrder
{
private readonly OrderService _orderService; public TestOrder()
{
_orderService = IocManager.Instance.Resolve<OrderService>();
}
public async Task<Order> CreateOrder(Order args)
{ return await _orderService.CreateOrderAsync(args); } }

abp.hangfire的用法:Enqueue<TJob, TArgs>(TArgs args) where TJob : IBackgroundJob<TArgs>;最后会在Excute方法里面去执行

原生hangfire用法:Enqueue(Expression<Func<Task>> methodCall),直接在参数里面调用方法

然鹅不知道为什么,我调用abp.hangfire的方法,执行是没问题的,但是在仪盘表里面没有显示该作业,而用原生的就可以显示。如图:

这是调用test2方法后的仪盘表,可以看到并没有新的作业生成,但是数据库确实添加了该数据

这是调用test方法,仪盘表有新的作业,数据库也插入正常

hangfire的使用的更多相关文章

  1. Hangfire项目实践分享

    Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...

  2. ABP文档 - Hangfire 集成

    文档目录 本节内容: 简介 集成 Hangfire 面板授权 简介 Hangfire是一个综合的后台作业管理器,可以在ABP里集成它替代默认的后台作业管理器,你可以为Hangfire使用相同的后台作业 ...

  3. ABP源码分析三十九:ABP.Hangfire

    ABP对HangFire的集成主要是通过实现IBackgroundJobManager接口的HangfireBackgroundJobManager类完成的. HangfireBackgroundJo ...

  4. [翻译+山寨]Hangfire Highlighter Tutorial

    前言 Hangfire是一个开源且商业免费使用的工具函数库.可以让你非常容易地在ASP.NET应用(也可以不在ASP.NET应用)中执行多种类型的后台任务,而无需自行定制开发和管理基于Windows ...

  5. Hangfire入门(任务调度)

    一.简介 英文官网:http://hangfire.io/ 开源地址:https://github.com/HangfireIO Hangfire 不依赖于具体的.NET应用类型,包含.NET 和.N ...

  6. ABP框架理论学习之Hangfire集成

    返回总目录 Hangfire是一个综合的后台工作管理者.你可以将Hangfire集成到ABP中,这样就可以不使用默认的后台工作管理者了.但你仍然可以为Hangfire使用相同的后台工作API.这样,你 ...

  7. 在ASP.NET Web API项目中使用Hangfire实现后台任务处理

    当前项目中有这样一个需求:由前端用户的一个操作,需要触发到不同设备的消息推送.由于推送这个具体功能,我们采用了第三方的服务.而这个服务调用有时候可能会有延时,为此,我们希望将消息推送与用户前端操作实现 ...

  8. ASP.NET Core开发-后台任务利器Hangfire使用

    ASP.NET Core开发系列之后台任务利器Hangfire 使用. Hangfire 是一款强大的.NET开源后台任务利器,无需Windows服务/任务计划程序. 可以使用于ASP.NET 应用也 ...

  9. 执行后台任务的利器——Hangfire

    今年1月31日,在微软的MVP 2015社区大讲堂上,我给大家分享了一个演讲:在ASP.NET应用中执行后台任务.其中介绍了三种技术的应用:QueueBackgroundWorkItem.Hangfi ...

  10. Hangfire项目使用

    基本介绍: hangfire 主要用于根据设置时间来执行任务,间隔几分钟执行一次,每天几点钟执行一次,如此执行任务. 方法: backgroundjob.enqueue(()=>"要执 ...

随机推荐

  1. Python 使用for...in...和 while 循环 实现8种格式的 九九乘法表

    #九九乘法表 for...in .. #左下角 for i in range(1,10): for j in range(1,i+1): print(' %d×%d=%2d'%(j,i,i*j), e ...

  2. Windows AD域管理软件是什么?

    Windows AD域管理软件是什么? ADManager Plus是一个简单易用的Windows AD域管理工具,帮助域管理员简化日常的管理工作.通过直观友好的操作界面,可以执行复杂的管理操作,比如 ...

  3. 初识kbmmw 5 中httpsys的支持

    前两天kbmmw 发布了5.0 版.里面一个非常令人兴奋的特性就是原生内部支持http.sys. 有关http.sys 的介绍及优势,我就在这里不多说了,大家可以参照一下我以前的文章. 关于http. ...

  4. RBAC简介

    1.RBAC 中文名称:基于角色的访问控制 1.1 作用:实现访问控制 1.2 核心:角色 2.英文名称:(Role-Based Access Control) 3.解释:一种思想,根据RBAC思想进 ...

  5. 爬虫模块之requests模块

    一 模块的下载安装 pip install requests 二 爬虫的介绍 什么是爬虫:就是模拟浏览器发送请求:保存到本地:提取有用的数据:保存到数据库 爬虫的价值:获取有用的数据,保存到数据库 爬 ...

  6. KAFKA 监控管理界面 KAFKA EAGLE 安装

    概述 Kafka Eagle监控系统是一款用来监控Kafka集群的工具,目前更新的版本是v1.2.3,支持管理多个Kafka集群.管理Kafka主题(包含查看.删除.创建等).消费者组合消费者实例监控 ...

  7. 03 编写URL规则

    3-1 URL编写规则 # 在每个App中设置独立的静态资源和模板文件并添加一个空白内容的urls.py文件. # 当程序收到用户请求的时候,首先在根目录的urls.py查找该URL属于哪个APP,然 ...

  8. L1范式和L2范式

    正则化(Regularization) 机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1ℓ1-norm和ℓ2ℓ2-norm,中文称作L1正则化和L2正则化 ...

  9. MVC框架-.net-摘

    MVC模式(三层架构模式)(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller) ...

  10. VS2008 + QGIS1.7.1试验

    今天试验了一下.结果算是成功了吧.显示Generate done,生成了.但是提示了一个“SVN version不明确”的错误提示,应该无大碍吧.但是打开Build成的.sln也没看出有啥不妥. 用C ...