hangfire的使用
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的使用的更多相关文章
- Hangfire项目实践分享
Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...
- ABP文档 - Hangfire 集成
文档目录 本节内容: 简介 集成 Hangfire 面板授权 简介 Hangfire是一个综合的后台作业管理器,可以在ABP里集成它替代默认的后台作业管理器,你可以为Hangfire使用相同的后台作业 ...
- ABP源码分析三十九:ABP.Hangfire
ABP对HangFire的集成主要是通过实现IBackgroundJobManager接口的HangfireBackgroundJobManager类完成的. HangfireBackgroundJo ...
- [翻译+山寨]Hangfire Highlighter Tutorial
前言 Hangfire是一个开源且商业免费使用的工具函数库.可以让你非常容易地在ASP.NET应用(也可以不在ASP.NET应用)中执行多种类型的后台任务,而无需自行定制开发和管理基于Windows ...
- Hangfire入门(任务调度)
一.简介 英文官网:http://hangfire.io/ 开源地址:https://github.com/HangfireIO Hangfire 不依赖于具体的.NET应用类型,包含.NET 和.N ...
- ABP框架理论学习之Hangfire集成
返回总目录 Hangfire是一个综合的后台工作管理者.你可以将Hangfire集成到ABP中,这样就可以不使用默认的后台工作管理者了.但你仍然可以为Hangfire使用相同的后台工作API.这样,你 ...
- 在ASP.NET Web API项目中使用Hangfire实现后台任务处理
当前项目中有这样一个需求:由前端用户的一个操作,需要触发到不同设备的消息推送.由于推送这个具体功能,我们采用了第三方的服务.而这个服务调用有时候可能会有延时,为此,我们希望将消息推送与用户前端操作实现 ...
- ASP.NET Core开发-后台任务利器Hangfire使用
ASP.NET Core开发系列之后台任务利器Hangfire 使用. Hangfire 是一款强大的.NET开源后台任务利器,无需Windows服务/任务计划程序. 可以使用于ASP.NET 应用也 ...
- 执行后台任务的利器——Hangfire
今年1月31日,在微软的MVP 2015社区大讲堂上,我给大家分享了一个演讲:在ASP.NET应用中执行后台任务.其中介绍了三种技术的应用:QueueBackgroundWorkItem.Hangfi ...
- Hangfire项目使用
基本介绍: hangfire 主要用于根据设置时间来执行任务,间隔几分钟执行一次,每天几点钟执行一次,如此执行任务. 方法: backgroundjob.enqueue(()=>"要执 ...
随机推荐
- 【Tomcat】Tomcat + Memcached 实现session共享
概述 web项目中,Tomcat的访问量总是有限的,这时候就需要用到Tomcat集群,多个Tomcat的时候就要考虑Session共享的问题,这里介绍一种使用Memcached做Session共享的解 ...
- IOS 在一个透明视图上添加不透明的子控件
环境: 在一个透明的view中添加一个tableview,tableview也变透明了. 解决: 不要这样设置view的透明度 view.backgroundColor = [UIColor clea ...
- SQL MAP 注入测试
SQL MAP是一款测试系统是否有SQL漏洞的工具 下载地址: http://sqlmap.org/ sqlmap 是一款使用python编写的工具,所以需要安装python,需要安装python 为 ...
- Linux centos 连接网络
1.在安装过程中不要选择网络适配器,其他正常执行 2.编辑 [root@zb ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 一般安装完软件,打开et ...
- mouseover和mouseout事件的相关元素
在发生mouseover和mouseout事件时,还会涉及更多的元素,这两个事件都会涉及把鼠标指针从一个元素的边界之内移动到另一个元素的边界之内.对mouseover事件而言,事件的主目标获得光标元素 ...
- 怎么让挨着的两input之间没有空隙?
问题:在写选项卡的时候,用input做点击事件的切换时,两个input之间会有空隙,使用margin/padding为0或者为负数依旧如此 → 解决:我脑慢的最后才想到是空格影响的,呵呵呵.
- mysql 存储过程 有数据修改 没数据插入
BEGIN DECLARE sid INT(10) DEFAULT 0; DECLARE money INT(10) DEFAULT 0; DECLARE row_count INT; DECLARE ...
- python输出显示颜色
显示颜色格式:\033[显示方式;字体色;背景色m......[\033[0m] ------------------------------------------- --------------- ...
- 大压力下Redis参数调整要点
调整以下参数,可以大幅度改善Redis集群的稳定性: 为何大压力下要这样调整? 最重要的原因之一Redis的主从复制,两者复制共享同一线程,虽然是异步复制的,但因为是单线程,所以也十分有限.如果主从间 ...
- js基础学习笔记(一)
* 在js编写过程中,尽量保持统一使用单引号 'XXXX': * 所有变量都要声明 var,避免全局函数调用的冲突: 1.1 输出内容 docment.write(‘aileLi’); 改变某I ...