分布式Job系统Hangfire

项目介绍:

Hangfire:是一个开源的job调度系统,支持分布式JOB!!

Hangfire.HttpJob 是我针对Hangfire开发的一个组件,该组件和Hangfire本身是独立的。可以独立更新Hangfire版本不影响!

该组件已被Hangfire官方采纳,在Hangfire官网可以查到:

开源地址:

https://github.com/yuzd/Hangfire.HttpJob

该项目目的是:

剥离Job调度和业务

共有三篇文章

开源分布式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
Mail 设置通知邮件地址 如果有多个用半角逗号隔开
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": "[email protected]",              //http调用失败通知我
  "AgentClass": ""
}

点击【提交】添加job 成功如下图所示:

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

针对该job 可以看到有四个按钮

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

job到时执行 如下图所示

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

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

也可以在Tag页面进行查看

说明:Tag页面是按jobName进行分组查询的 

点击某一个jobName 进入该jobName下所有的运行完成的job列表

原文地址:https://www.cnblogs.com/Leo_wl/p/10995388.html

时间: 2024-10-31 03:17:09

分布式Job系统Hangfire的相关文章

开源分布式Job系统,调度与业务分离-HttpJob.Agent组件介绍以及如何使用

项目介绍: Hangfire:是一个开源的job调度系统,支持分布式JOB!! Hangfire.HttpJob 是我针对Hangfire开发的一个组件,该组件和Hangfire本身是独立的.可以独立更新Hangfire版本不影响! 该组件已被Hangfire官方采纳,在Hangfire官网可以查到: 开源地址: https://github.com/yuzd/Hangfire.HttpJob 该项目目的是: 剥离Job调度和业务 共有三篇文章 开源分布式Job系统,调度与业务分离-如何创建周期

TensorFlow【机器学习】:如何正确的掌握Google深度学习框架TensorFlow(第二代分布式机器学习系统)?

本文标签:   机器学习 TensorFlow Google深度学习框架 分布式机器学习 唐源 VGG REST   服务器 自 2015 年底开源到如今更快.更灵活.更方便的 1.0 版本正式发布,由 Google 推出的第二代分布式机器学习系统 TensorFlow一直在为我们带来惊喜,一方面是技术层面持续的迭代演进,从分布式版本.服务框架 TensorFlow Serving.上层封装 TF.Learn 到 Windows 支持.JIT 编译器 XLA.动态计算图框架 Fold 等,以及

分布式缓存系统 Memcached 整体架构

分布式缓存系统 Memcached整体架构 Memcached经验分享[架构方向] Memcached 及 Redis 架构分析和比较

HAProxy + Keepalived + Flume 构建高性能高可用分布式日志系统

一.HAProxy简介 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理. HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. 二.Keepalived简介 它是一个基于VRRP协议来实现的WEB服务高可用方案,

分布式消息系统Jafka入门指南之二

分布式消息系统Jafka入门指南之二 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 三.Jafka的文件夹结构 1.安装tree命令 $ sudo yum install tree 2.查看文件夹 $ tree -L 1 . ?..? ? bin ? ..?? conf ?..?? data ? ..?? lib ? ..?? LICENSE ?..? ? logs ?..?? VERSION 说明:bin文件夹:命令行脚本conf文件夹:存放配置

微服务之分布式跟踪系统(springboot+zipkin)

微服务之分布式跟踪系统(springboot+zipkin) 一.zipkin是什么 zipkin是一个开放源代码分布式的跟踪系统,由Twitter公司开源,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集.存储.查找和展现.它的理论模型来自于Google Dapper 论文. 每个服务向zipkin报告计时数据,zipkin会根据调用关系通过Zipkin UI生成依赖关系图,显示了多少跟踪请求通过每个服务,该系统让开发者可通过一个 Web 前端轻松的收集和分析数据,例如

分布式监控系统Ganglia简介及安装

一.Ganglia简介 Ganglia是一款为HPC(高性能计算) 集群设计的可扩展性 的分布式监控系统,它可以监视和显示集群中节点的各种状态信息,他由运行在各个节点上的gmond守护进程来采集 CPU.内存.磁盘利用率.I/O负载.网络流量情况等方面的数据.然后汇总到gmetad守护进程下,使用rrdtool存储数据,然后将历史数据以曲线方式通过PHP页面呈现. Ganglia监控系统由三部分组成,分别是gmond.gmetad.webfrontend gmond  一个守护进程运行在每个需要

分布式消息系统jafka快速起步(转)

Jafka 是一个开源的/性能良好的分布式消息系统.在上一篇文章中有所简单介绍.下面是一篇简单的入门文档.更多详细的文档参考wiki. Step 1: 下载最新的安装包 完整的安装指南在这里.最新的发行版地址在:https://github.com/adyliu/jafka/downloads $wget https://github.com/downloads/adyliu/jafka/jafka-1.0.tgz $tar xzf jafka-1.0.tgz $cd jafka-1.0 可选配

[kfaka] Apache Kafka:下一代分布式消息系统

简介 Apache Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和可复制的提交日志服务. Apache Kafka与传统消息系统相比,有以下不同: 它被设计为一个分布式系统,易于向外扩展: 它同时为发布和订阅提供高吞吐量: 它支持多订阅者,当失败时能自动平衡消费者: 它将消息持久化到磁盘,因此可用于批量消费,例如ETL,以及实时应用程序. 本文我将重点介绍Apache Kaf