“巨人们”的地址
Hangfire Mysql:
https://github.com/arnoldasgudas/Hangfire.MySqlStorage 在获取set表数据的sql语句有bug
Hangfire Console:
https://github.com/pieceofsummer/Hangfire.Console
站在巨人们的肩膀开始我的整合啦:
主要用在以下场景:
比如:
1客人下单,超过最晚支付时间就自动取消订单
2复杂的需要花一定时间的计算,然后还得发推送通知
3 通过延迟和循环任务分批群发短信或邮件
等等
示意图为
首先我封装了hangfire在server端加入api功能,封装了以下:
1可以创建一个立刻执行的后台job
2可以创建一个可延期执行的job
3可以创建一个定时周期性的job
4可以创建一个类似于Task的Continue功能的有执行顺序的Job。例如A执行完了执行B,B执行完了执行C。。。
封装了这层API这样就统一了 job的入口。
并且规定好了job的参数,
因为具体job的执行是不在 hangfireserver里面的。
hangfireserver是统一管理job和发起执行job的请求角色。
那么hangfireserver是怎么知道往哪里发http请求去执行job,带什么参数的呢
都是在创建job的时候就约定好了。
例如 客人下单 时 调用 创建一个可延迟执行的job 例如延迟15分钟
调用创建的时候 传入的对象有发起http请求的一些参数例如
URL:执行具体job的api地址 也就是如上图的web api excute
Method 是get还是 post
contenttype啊之类的。
因为虽然是内网 但是我也不想直接暴露给所有人 所以我额外规定了web api excute都要统一加了 basic认证。。
创建成功后
这个时候就可以在dashbord上看见计划有一个任务
过了15分钟后开始执行这个job,就发起请求,
下面的蓝色部分就是 hangfire console的作用。
把执行的参数 结果等都保存下来。。查看的时候一目了然
目前还存在一些不方便的地方:
dashbord不支持查询功能。。
我就改了一下源码
https://github.com/yuzd/Hangfire.Core.Extend
https://github.com/yuzd/Hangfire.Mysql.Extend
新增了对于Netcore的支持 :
https://github.com/yuzd/Hangfire.HttpJob
效果如下
2016-12-25平安夜新增了dashbord新增作业和周期性作业的入口
2015-12-26新增了corn表达式在线生成的功能
至此 我想要的功能基本满足了 yeah!

如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,转载文章之后须在文章页面明显位置给出作者和原文连接,谢谢。

Hangfire 使用笔记相关推荐

  1. hangfire使用笔记

    1.导入nuget包 2.配置 简单配置后就可以写自己的Job了 注意:Hangfire.RecurringJobExtensions这个扩展支持两种job添加方法:json配置文件和特性.但由于时区 ...

  2. C#-初识Hangfire

    Hangfire 分布式后端作业调度框架服务 概述 特点 版本 基本结构 基本功能及使用 基本功能的部分对象解析 项目引入 拓展 MySqlStorageOptions 数据库配置项 Backgrou ...

  3. Asp-Net-Core开发笔记:集成Hangfire实现异步任务队列和定时任务

    1前言 最近把Python写的数据采集平台往.Net Core上迁移,原本的采集任务使用多进程+线程池的方式来加快采集速度,使用Celery作为异步任务队列兼具定时任务功能,这套东西用着还行,但反正就 ...

  4. 11月3日云栖精选夜读:《maven实战》读书笔记2——maven安装(windows和eclipse插件)...

    前言 由于我的工作中开发环境就是windows,IDE是eclipse,因此安装也只涉及和记录这两部分,在看书和动手的过程也就直接跳过其他部分. 笔记 windows中maven的安装 安装条件 ma ...

  5. linux任务调度框架,任务调度框架Hangfire 简介

    任务调度是我们项目中常见的功能,虽然任务调度的功能实现本身并不难,但一个好用的轮子还是可以给我们的开发的效率提升不少的. 在.net环境中,较为有名的任务调度框架是HangFire与Quartz.NE ...

  6. 【读书笔记】知易行难,多实践

    前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...

  7. 【运维学习笔记】生命不息,搞事开始。。。

    001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...

  8. SSAN 关系抽取 论文笔记

    20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...

  9. pandas以前笔记

    # -*- coding: utf-8 -*- """ Created on Sat Jul 21 20:06:20 2018@author: heimi "& ...

最新文章

  1. R语言ggplot2可视化:拟合二次曲线(quadratic curve)并使用ggplot2进行可视化、可视化两个响应变量和一个预测变量的二次曲线
  2. Lucene进阶操作,单字段、多字段和布尔搜索
  3. 计算机能模拟图灵机吗,关于计算机科学:图灵机与冯诺依曼机器
  4. 【Tools】Visual Studio 2019下载和安装
  5. Just a Hook HDU - 1698(查询区间求和+最基础模板)
  6. C# —— IEnumerable和状态机
  7. [入门阅读]怎样在android中解析JSON
  8. SQL太难学不会?教你如何零基础快速入门
  9. python获取图片曲线数据_从图片中提取曲线坐标数据
  10. Java 图形界面开发--图文并茂建立学生管理系统
  11. POJ 1380 Equipment Box(大矩形包含小矩形判定)
  12. android控制音量大小,Android AudioTrack音量控制笔记总结
  13. Swift网络请求 - RXSwift + PromiseKit + Moya
  14. js 删除obj对象的属性
  15. 如何查看2020最新版谷歌地球高精度卫星地图(附下载方法)
  16. 家庭版Windows10/Windows11不支持远程桌面的解决办法
  17. ML-Agents案例之蠕虫
  18. oracle数据库中小数小于1时0不显示
  19. 2d游戏地图制作html5,如何通过 Cocos2d-html5 使用砖块地图编辑器
  20. 网页设计与制作(五)

热门文章

  1. 虚拟主机怎么搭建网站(如何搭建自己虚拟主机)
  2. UNIX2DOS/DOS2UNIX for Windows
  3. eclipse中输出时出现中文乱码的问题
  4. diagram使用(BLOCK DIAGRAM)
  5. 在线tcp测试,tcp测试
  6. Java多线程--深入浅出Java多线程
  7. linux内核原子操作的实现
  8. OC Runtime探索
  9. intel cpu 分类 i7、i5、i3、T系列、P系列
  10. Linux系统下如何在防火墙开放指定端口