Hangfire.HttpJob部署到IIS踩坑指南

        入职新公司,故人留下的坑,在数据库写了N个job定时执行。数据出现异常的时候,存储过程调试地令人崩溃。所以做一个这种定时任务平台,以定时调用接口的方式去执行,这样比存储过程方便多了。那么问题就来了,对于我一个.NET程序员来说用Hangfire还是用Quartz呢?

        短暂纠结之后选择Hangfire.HttpJob,因为可以简单部署独立网站,灵活的配置去调用接口,每次如果我要添加一个job的时候仅仅只需要加一个配置就可以了。空口无凭,上图

         如图,相较于以前将job代码嵌入到项目程序里的做法,很明显,这种方式灵活很多,不影响项目主版本代码发布,接口代码编写也更加简单,快捷。对于Hangfire.HttpJob的优点就不一一赘述了,Hangfire.HttpJob 中文文档 - 手册 - 文江博客 这里的文档极其完善,也有开源代码以供下载研究。

 

        事情告一段落,与正常接口写法返回值不一样,一般来说我们的定时任务一般都是到某个时间点计算统计数据,或者定时清理数据等。执行的时间相对来说比较长,如果完全等待接口代码执行完毕,再给返回值,经常会出现超时。所以我的处理方式是主进程直接返回成功,另外拉了个进程去处理后续逻辑,用日志的方式去记录真实成功与否。

        涉及到部署的时候,还是出问题了,页面打开显示不存在,一开始完全不知道是什么原因,只能通过查看window事件日志去查原因。

 然后根据日志内容

 去检查数据库配置,iis权限等都没问题。

问题依旧存在

最后把应用程序改成无托管就OK了

为了防止大家以后踩坑,我把我的部署文件及数据库直接发上来,大家自取

https://download.csdn.net/download/zhangxiaoyu138/87564069

部署方便,解压文件后,把数据库还原,修改配置文件

 

 然后再按照我上面遇到的问题去修改应用程序池的无托管即可打开。

 

后续关于详细如何配置, 我就不赘述了,大家参考这个开源项目作者的博客即可,写的很详细

 ,Hangfire.HttpJob 中文文档 - 手册 - 文江博客 

关于cron表达式生成,在线Cron表达式生成器这个网址我觉得挺好用的。

end 有问题加Q联系 765353946

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值