Hangfire.Autofac与ASP.NET CORE注入失败

Hangfire.Autofac与ASP.NET CORE注入失败

项目里面使用了Hangfire,因为之前没用过吧,遇到了个问题,就是使用了ico容器后,再用Hangfire总是注入不上对象,总是后台任务拿db对象为空的情况 我tm直接石化 :tw-1f31d:

        /// <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访问自己的接口去操作,你们也别笑,我自己都笑 :tw-1f437:

解决办法

BackgroundJob.Schedule<IOperatorService>(x=>  x.CheckLockAccount(res.lockIds),TimeSpan.FromDays(1));//一天后执行该任务

!正确
 BackgroundJob.Schedule(() =>_service.CheckLockAccount(res.lockIds),TimeSpan.FromDays(1));//一天后执行该任务

!错误

自己坑了自己一把,在此把坑填了!

猜你喜欢

转载自www.cnblogs.com/codedisco/p/12981093.html