Hangfire&Autofac与ASP.NET CORE注入失败
Hangfire.Autofac与ASP.NET CORE注入失败
项目里面使用了Hangfire,因为之前没用过吧,遇到了个问题,就是使用了ico容器后,再用Hangfire总是注入不上对象,总是后台任务拿db对象为空的情况 我tm直接石化 🐺
/// <summary>
/// 检查供应商状态(20天内没登陆发送短信提醒)
/// </summary>
/// <returns></returns>
[HttpGet(nameof(CheckOperator))]
public async Task<object> CheckOperator()
{
var res = await _service.CheckOperatorTask();
BackgroundJob.Schedule(()=>
_service.CheckLockAccount(res.lockIds)
,TimeSpan.FromDays(1));//一天后执行该任务
return res.msg;
}
这个样子,肯定要抛空指针异常啊。注入不上咋办。之前都是用了个笨方法,通过WebRequest访问自己的接口去操作,你们也别笑,我自己都笑 🐽
解决办法
BackgroundJob.Schedule<IOperatorService>(x=> x.CheckLockAccount(res.lockIds),TimeSpan.FromDays(1));//一天后执行该任务
!正确
BackgroundJob.Schedule(() =>_service.CheckLockAccount(res.lockIds),TimeSpan.FromDays(1));//一天后执行该任务
!错误
自己坑了自己一把,在此把坑填了!