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方法,仪盘表有新的作业,数据库也插入正常

最新文章

  1. 01 HDFS 简介
  2. 夺命雷公狗-----React_native---3---react-native-cli的安装
  3. TOGAF:企业信息化复杂吗?
  4. Android中的图片压缩
  5. get值乱码(gbk编码浏览器造成)
  6. GameUnity 2.0 文档(四) 网格+四叉树 最优碰撞检测
  7. 利刃 MVVMLight
  8. 干货 | 云智慧透视宝Java代码性能监控实现原理
  9. There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).
  10. JAVA死锁
  11. Django项目导入Eclipse运行调试
  12. Django-ORM-单表操作
  13. CRM之分页
  14. 我的 Erdos 数是 4
  15. IntelliJ IDEA使用教程(简介)
  16. 信号处理——EMD、VMD的一点小思考
  17. [亲测!超级简单] Centos 安装Python3.6环境
  18. 剑指offer:数值的整数次方
  19. vue--动态路由和get传值
  20. [翻译] UIGlossyButton

热门文章

  1. android 使用UDP发送数据 DatagramSocket 创建对象为null
  2. 通过 Spring Security配置 解决X-Frame-Options deny 造成的页面空白 iframe调用问题
  3. 【Web】网页清除浮动的方法
  4. [VBS]检测计算机各硬件信息
  5. SPRING 事务管理说明
  6. 将批量指定的docker镜像打成文件
  7. Java 获取最近时间
  8. 学以致用八---centos7.2 安装vim8+支持python3
  9. linux下运算的几种方法
  10. poj1741(点分模板)