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="4397",Id=Guid.NewGuid(),Money=777,Num="clearlove777"}));}/// <summary>/// abp.hangfire/// </summary>/// <returns></returns>public async Task Test2(){_backgroundJobManager.Enqueue<TestJob, Orders.Order>(new Orders.Order() { Description = "4397", Id = Guid.NewGuid(), Money = 777, 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方法,仪盘表有新的作业,数据库也插入正常
转载于:https://www.cnblogs.com/kenzoBlog/p/10570320.html
hangfire的使用相关推荐
- Core 定时任务之HangFire
ASP.NET Core 使用 Hangfire 很简单,首先,Nuget 安装程序包 > install-package Hangfire -pre 然后ConfigureServices添加 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 集成Hangfire实现定时任务处理
基于 abp vNext 和 .NET Core 开发博客项目 - 集成Hangfire实现定时任务处理 转载于:https://github.com/Meowv/Blog 接下来,将完成一个任务调度 ...
- Hangfire源码解析-如何实现可扩展IOC的?
一.官方描述 These projects simplify the integration between Hangfire and your favorite IoC Container. The ...
- Hangfire 任务调度
Hangfire是一个开源且商业免费使用的工具函数库.可以让你非常容易地在ASP.NET应用(也可以不在ASP.NET应用)中执行多种类型的后台任务,而无需自行定制开发和管理基于Windows Ser ...
- 【netcore基础】.Net core自动作业之Hangfire
nuget搜索:Hangfire 安装即可,这里我选择的是 1.7.0-beta1 版本 我是用这个集成到了 mvc api里 这里需要在 Startup 文件里进行如下配置 在配置方法 Config ...
- HangFire循环作业中作业因执行时间太长未完成新作业开启导致重复数据的问题...
背景 HangFire有个很奇怪的现象,就是即使你设置的循环作业是一天一次,但是每次作业执行很长时间,我们假设是1小时,那么差不多在开始执行之后的30分钟之后,如果还在执行job,系统就会自动帮你重新 ...
- 让 Hangfire 使用 MongoDB 存储
MongoDB 支持Hangfire库.通过使用这个库,您可以将所有作业信息存储在 MongoDB 中. 要安装 Hangfire MongoDB Storage,请在 Nuget 包管理器控制台中运 ...
- Abp vNext 后台作业hangfire
概述 ABP vNext 提供了后台工作者和后台作业的支持,基本实现与原来的 ABP 框架类似,并且 ABP vNext 还提供了对 HangFire 和 RabbitMQ 的后台作业集成.开发人员在 ...
- .NET Core 部署IIS无法启动Hangfire方案
[导读]不知道是否有童鞋遇到过将.NET Core部署到IIS上时,但Hangfire无法启动,自然而然也就导致作业无法良好运行的问题,本文给出两个方案,不知是否有完美解决方案,若有,请于留言中给出, ...
- Hangfire定时触发作业,好像很简单?
[导读]本节我们继续稍微详细讲讲在我没有详细了解源码的前提下来探讨通过Hangfire定时触发作业有哪些需要注意的事项 间隔时间内执行作业 举个栗子,每隔10秒监控系统CPU,若CPU飙高(根据实际业 ...
最新文章
- 架构设计本质:系统与子系统、模块与组件、框架与架构
- Amazon EC2云端服务器的使用方法
- python123程序作业答案说句心里话_作业 -- 几道简单的Python题
- 月薪2万程序员面试,被HR直面吐槽:毕业生能值这个数?
- 一部分 数据 迁移_11项最佳实践,每次数据中心迁移都必不可少
- 中国AI军团争霸机器阅读理解大赛,搜狗创下全球新纪录
- Codeforces Round #696 (Div. 2)
- css不同大小字体底部对齐
- 从入门到入土:Python实现爬取网易云歌词|评论生成词云图
- UE5 建模(一)Shapes
- 【Python】报错:ValueError: attempted relative import beyond top-level package问题解决
- 突然断电对oracle的影响,Oracle数据库之由于突然断电造成oracle数据库的部分clob字段值变为(损毁)...
- 在计算机内部 g的asc,在计算机内部,大写字母“G”的ASCⅡ码为“1000111”,大写字母“K”的ASCⅡ码为()。...
- EditPlus 格式化 Unicode,编辑properties
- 控制科学与工程(自动化)保研经验【4】——浙大篇
- class wizard entry is missing的解决方法
- cas的session存储及实现共享的
- 给最近正在找工作(iOS)的朋友一些建议/经验
- Dalvik虚拟机、ART虚拟机
- 小米5设置位置服务器,小米导航及所在地最佳GPS配置[教程]
热门文章
- JS实现点击表头表格自动排序(含数字、字符串、日期)
- Kali无线渗透获取宿舍WiFi密码(WPA)
- Tushare介绍和入门级实践(1)——使用tushare接口获取沪深300成分股交易日涨跌数据
- Linux中vmstat命令详解
- 计算机表格大小怎么调整,excel把表格拉大_excel调整单元格大小的方法步骤详解...
- Packet len* is out of range 解决方法
- python \r \t \n 各种转义字符
- Phantomjs对vue进行seo优化
- bzoj3786 星际探索 splay dfs序
- 前方高能!githubjava开源项目