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));//一天后执行该任务

!错误

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

posted @ 2020-05-28 15:22  Homegu  阅读(632)  评论(0编辑  收藏  举报