分布式Job系统Hangfire
开源分布式Job系统,调度与业务分离-如何创建一个计划HttpJob任务
项目介绍:
Hangfire:是一个开源的job调度系统,支持分布式JOB!!
Hangfire.HttpJob 是我针对Hangfire开发的一个组件,该组件和Hangfire本身是独立的。可以独立更新Hangfire版本不影响!
该组件已被Hangfire官方采纳,在Hangfire官网可以查到:

开源地址:
https://github.com/yuzd/Hangfire.HttpJob
该项目目的是:
剥离Job调度和业务
共有三篇文章
开源分布式Job系统,调度与业务分离-如何创建一个计划httpjob任务
开源分布式Job系统,调度与业务分离-如何创建周期性的HttpJob任务
开源分布式Job系统,调度与业务分离-HttpJob.Agent组件介绍以及如何使用
本篇教程:如何创建一个计划httpjob任务
计划httpjob任务的定义
一次性的job 只运行一次
1. 进入hangfire的后台 点击 左侧栏【计划】
会看到一个按钮名称叫 【新增常规作业】如下图所示: 
2. 点击【新增常规作业】会出现一个json编辑器
如下图所示 
json编辑器的参数说明如下
| 字段名称 | 备注 |
|---|---|
| JobName | 你给这个httpjob起的名称【必填项】 |
| Method | 这个httpjob的请求方式 "get" 或者 "post" 【必填项】 |
| ContentType | 这个httpjob的请求ContentType 默认"application/json" 【必填项】 |
| Url | 这个httpjob的请求url 【必填项】 |
| DelayFromMinutes | 需要延迟执行的分钟,注意:0 代表立刻执行; -1代表只能手动触发; >=1代表延迟分钟数 【必填项】 |
| Data | 这个httpjob在Method=“post”的时候可以指定post的内容,可以是一个对象也可以是一个string或者其他类型 |
| Timeout | 这个httpjob请求的超时时间(单位是毫秒 例如5000 代表是5秒) |
| BasicUserName | 这个httpjob请求需要启用basic认证时设置的username |
| BasicPassword | 这个httpjob请求需要启用basic认证时设置的密码 |
| EnableRetry | 失败的时候(比如超时 远程服务器请求错误等)是否启用重试 默认false ,如果设置true 会重试最大3次 |
| SendSucMail | 这个httpjob请求无异常的时候是否发送通知邮件 默认false |
| SendFaiMail | 这个httpjob请求异常的时候是否发送通知邮件 默认true |
| 设置通知邮件地址 如果有多个用半角逗号隔开 | |
| AgentClass | 如果是AgentJob开发的httpjob 则需要填写,填写的是完整的类型格式{namespace},{程序集的名称} 例如:TestHangfireAgent.Jobs,TestHangfireAgent |
3.举例
我开发了一个订单支付超时检测 接口
访问地址是:
http://localhost:5000/checkOrder
访问方式是POST
访问的参数是 orderId
接口有basicAuth验证 用户名是admin 密码是test
希望计划 15分钟后执行 看有没有支付 没有支付 就把订单状态改成取消
如果接口访问失败那么通知邮箱 1877682825@qq.com
# 那么对应如下填写:
{
"JobName": "checkOrder", //Job名称
"Method": "POST", //http请求的方法
"ContentType": "application/json", //http参数类型
"Url": "http://localhost:5000/checkOrder",//接口的地址
"DelayFromMinutes": 15, //15分钟后执行
"Data": {
"OrderId":123456 //传的参数 orderId
},
"Timeout": 5000, //http调用超时设置
"BasicUserName": "admin", //http调用的basicAuth
"BasicPassword": "test", //http调用的basicAuth
"EnableRetry": false,
"SendSucMail": false,
"SendFaiMail": true, //http失败时发邮件通知
"Mail": "1877682825@qq.com", //http调用失败通知我
"AgentClass": ""
}
点击【提交】添加job 成功如下图所示:

可以看到会在15分钟后执行该job

针对该job 可以看到有四个按钮
| 按钮名称 | 说明 |
|---|---|
| 加入队列 | 如果你想让这个job立即执行 可以点击该按钮 |
| 删除选中 | 如果你想删除这个job 可以点击该按钮 |
| 带参数执行 | 这个按钮的作用是 重新定义JSON里面的Data的值 并立即执行的意思,在AgentJob场景下使用较多 |
| 停止Job | 这个只能在AgentJob才可以使用 |
job到时执行 如下图所示

job执行完毕 在完成列表可以查询

点击job编号进入job详情页查看具体执行情况和日志

也可以在Tag页面进行查看
说明:Tag页面是按jobName进行分组查询的 
点击某一个jobName 进入该jobName下所有的运行完成的job列表

如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,转载文章之后须在文章页面明显位置给出作者和原文连接,谢谢。
分布式Job系统Hangfire的更多相关文章
- 开源分布式Job系统,调度与业务分离-如何创建一个计划HttpJob任务
项目介绍: Hangfire:是一个开源的job调度系统,支持分布式JOB!! Hangfire.HttpJob 是我针对Hangfire开发的一个组件,该组件和Hangfire本身是独立的.可以独立 ...
- 开源分布式Job系统,调度与业务分离-如何创建周期性的HttpJob任务
项目介绍: Hangfire:是一个开源的job调度系统,支持分布式JOB!! Hangfire.HttpJob 是我针对Hangfire开发的一个组件,该组件和Hangfire本身是独立的.可以独立 ...
- 开源分布式Job系统,调度与业务分离-HttpJob.Agent组件介绍以及如何使用
项目介绍: Hangfire:是一个开源的job调度系统,支持分布式JOB!! Hangfire.HttpJob 是我针对Hangfire开发的一个组件,该组件和Hangfire本身是独立的.可以独立 ...
- 基于英特尔® 至强™ 处理器 E5 产品家族的多节点分布式内存系统上的 Caffe* 培训
原文链接 深度神经网络 (DNN) 培训属于计算密集型项目,需要在现代计算平台上花费数日或数周的时间方可完成. 在最近的一篇文章<基于英特尔® 至强™ E5 产品家族的单节点 Caffe 评分和 ...
- 分布式监控系统Zabbix-3.0.3-完整安装记录(7)-使用percona监控MySQL
前面已经介绍了分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控,但是没有提供可以直接使用的Key,太过简陋,监控效果不佳.要想更加仔细的监控Mysql,业内同学们都会选择 ...
- 分布式追踪系统dapper
http://www.cnblogs.com/LBSer/p/3390852.html 最近单位需要做自己的分布式监控系统,因此看了一些资料,其中就有google的分布式追踪系统dapper的论文:h ...
- Kafka——分布式消息系统
Kafka——分布式消息系统 架构 Apache Kafka是2010年12月份开源的项目,采用scala语言编写,使用了多种效率优化机制,整体架构比较新颖(push/pull),更适合异构集群. 设 ...
- 分布式消息系统Kafka初步
终于可以写kafka的文章了,Mina的相关文章我已经做了索引,在我的博客中置顶了,大家可以方便的找到.从这一篇开始分布式消息系统的入门. 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到 ...
- Apache Kafka:下一代分布式消息系统
[http://www.infoq.com/cn/articles/apache-kafka/]分布式发布-订阅消息系统. Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和可复制的提交日 ...
随机推荐
- Apache Flink vs Apache Spark——感觉二者是互相抄袭啊 看谁的好就抄过来 Flink支持在runtime中的有环数据流,这样表示机器学习算法更有效而且更有效率
Apache Flink是什么 Flink是一款新的大数据处理引擎,目标是统一不同来源的数据处理.这个目标看起来和Spark和类似.没错,Flink也在尝试解决 Spark在解决的问题.这两套系统都在 ...
- [原创]java开发实现word在线编辑及流转
OA公文流转系统主要用于处理企业日常工作中内外部的各种公文,包括了公文的拟稿.审批.传阅.公告.归档,多层上级可以对下级撰写的公文进行逐级审批或修改,待最高级人员确认无误后即可进行核稿和发文等操作,最 ...
- python二进制数据
一直以来对python的二进制数据搞不清楚. 一.二进制显示格式与实际存储值区别 1.二进制数据在python中以字节(bytes)类型和字节数组类型(bytearray)保存着,前者数据固定,后者不 ...
- 解决Linux Kettle出现闪退问题
linux环境, 运行sh spoon.sh打开图形化界面时经常出现闪退情况. 报错信息如下: cfgbuilder - Warning: The configuration parameter [o ...
- BZOJ4571:[SCOI2016]美味
浅谈主席树:https://www.cnblogs.com/AKMer/p/9956734.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem.p ...
- BZOJ2028:[SHOI2009]会场预约(线段树版)
浅谈树状数组与线段树:https://www.cnblogs.com/AKMer/p/9946944.html 题目传送门:https://www.lydsy.com/JudgeOnline/prob ...
- 创建自己的YUM仓库
1. 首先,假定我们应用的名字叫helloworld(可以参考简单 RPM 包制作来创建两个版本helloworld安装RPM包,helloworld-1.0.0-1.el6.x86_64.rpm和h ...
- 数据库和ADO
数据库语言 数据库的简易流程(数据库客户端软件和数据库服务软件的执行流程) 主键的概念 如何创建主键 如何创建外键 主外键关系的概念以及使用 数据库的主要类型 数据库的主要数据类型 使用SQL语句来创 ...
- The Tomcat server configuration at \Servers\Tomcat v8.0 Server at localhost-config is missing. Check the server for erro
解决方案 1.选择Eclipse工具栏中的Windows→Perferences 2.remove已经创建的server 3.选择Add重新添加,选择create anew local server ...
- JSP环境探针-当前电脑所有系统参数
1 <%@ page contentType="text/html;charset=gb2312" %> <%@ page import="java.u ...