“巨人们”的地址
Hangfire Mysql:
https://github.com/arnoldasgudas/Hangfire.MySqlStorage 在获取set表数据的sql语句有bug
 
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不支持查询功能。。
我就改了一下源码
效果如下
 
2016-12-25平安夜新增了dashbord新增作业和周期性作业的入口
 
2015-12-26新增了corn表达式在线生成的功能
至此 我想要的功能基本满足了 yeah!
 

Hangfire 使用笔记的更多相关文章

  1. hangfire使用笔记

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

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

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

  3. Hangfire实战二——为DashBoard页面添加权限认证

    概述 Hangfire Dashboard为我们提供了可视化的对后台任务进行管理的界面,我们可以直接在这个页面上对定时任务进行删除.立即执行等操作,如下图所示: 默认情况下,这个页面只能在部署Hang ...

  4. Hangfire项目实践分享

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

  5. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  6. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  7. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  8. ABP文档 - Hangfire 集成

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

  9. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

随机推荐

  1. LPC1788系统时钟初始化

    #ifndef __SYS_H_ #define __SYS_H_ #include "common.h" #define SystemCoreClock  120000000  ...

  2. NSDate常用代码范例

    NSDate常用代码范例 NSDate类用于保存时间值,同时提供了一些方法来处理一些基于秒级别时差(Time Interval)运算和日期之间的早晚比较等. 1. 创建或初始化可用以下方法 用于创建N ...

  3. UVa 299 - Train Swapping

    题目大意:给n个数的一个序列,通过交换相邻的两个数使得这n个数按照从小到大的顺序排列. Inversion index problem: count how many swaps are needed ...

  4. [Angular Tutorial] 6-Two-way Data Binding

    在这一步中,您将会添加一个新特性来使得您的用户可以控制电话列表中电话的顺序,动态改变顺序是由创建一个新的数据模型的特性实现的,将它和迭代器绑定在一起,并且让数据绑定神奇地处理下面的工作. ·除了搜索框 ...

  5. iOS 之 设置横竖屏及ViewWillAppear及视图与导航控制器嵌套时的不同反应

    设置横竖屏不成功,可能跟所在导航控制器有关 视图没有导航控制器时,又有可能不调用ViewWillAppear,这是我遇到的问题.

  6. CentOS下架设VNC服务器

    CentOS下架设VNC服务器1.什么是VNC服务器?百度百科:VNC (Virtual Network Computer)是虚拟网络计算机的缩写.它 是一款优秀的远程控制工具软件,由著名的 AT&a ...

  7. Linux环境下的GCC编译器与GDB调试工具介绍

    假如现在我们有如下代码需要编译运行和调试.文件名为:test.c #include <stdio.h> int main() { int day, month, year, sum, le ...

  8. Selenium2(java)框架设计 九

    设计框架原则: 数据分离,业务层和逻辑层不要混杂在一起. 设计图: 框架结构初始化: com.wymall.test:这是存放这个框架源代码的根目录 base:里面有个基类(BaseParpaare. ...

  9. Hybird应用开发实践(一)使用原生/cordova混合项目

    最近准备尝试hybird开发原生应用,因为公司的项目本来就是原生开发的,所以准备选择cordova作为webview嵌入原生项目的开发方式.这里就以mac上整合ios项目为例. 1. 创建cordov ...

  10. 国产数据库-KingbaseES在linux下的安装

    将KingbaseES软件从windows中传至Linux中并解压 [root@localhost ~]# ls anaconda-ks.cfg  install.log.syslog Desktop ...