Skip to content
俞正东 edited this page Mar 25, 2023 · 17 revisions

Welcome to the Hangfire.HttpJob wiki!

Hangfire.HttpJob究竟是干嘛的

  • 说白了它就是一个调度器(调度服务),这个调度器启动后你可以在管理面板上添加作业(让你通过web请求的方式去调度你的作业)
  • 传统使用Hangfire都是把Job的处理逻辑代码写在和Hangfire的同一个工程!
  • 缺点: 这样就耦合在了一起,如果业务线增大,会导致每个业务线的Job处理逻辑都得和Hangfire耦合在一起!发布的时候所有业务线Job都得暂停调度
  • 而使用了Hangfire.HttpJob的话 就是把Hangfire的服务拓展成可以把Job的处理逻辑代码写在别的工程里面(以webapi的形式暴露给Hangfire.HttpJob去调度)
  • 优点:这样就解耦了Hangfire和业务处理逻辑,业务job开发者可以忽略Hangfire的存在,可以不需要了解Hangfire用自己喜欢的语言和技术(mvc or webapi or webservice等等 管你用啥技术 管你用啥语言)开发job!!不同的业务线分开不同的JobAgent可以分别部署,发布互不影响

Hangfire.HttpJob.Agent是干嘛的

是开发job(作业)的。可能有同学会疑问你不是上面说任何通过http形式能访问的都可以去调度嘛!为什么还要搞一个这个东西出来呢? 主要原因是更好的配合调度器,除了让开发job更加的高效,最重要的是可以管控job的生命周期,心跳和性能监控,能够做到统一管理,查看执行进度,查看执行日志(还有进度条方式)。

具体使用请查看wiki教程

还有视频教程:

https://mp.weixin.qq.com/s/HIaIeEmM1zev7p0kyWASOQ

Hangfire.HttpJob.Client又是干嘛的

是添加job的。你开发了job 需要添加到调度服务上。除了你手动在调度的后台添加,还可以用代码来添加。

推荐部署到windows服务或者linux服务或者docker容器运行

不推荐iis部署(iis有pool回收问题)

具体使用请查看wiki教程