abpvnext中使用后台工作者BackgroundWorker创建定时任务,实现定时从更新要缓存的数据到redis

abpvnext中使用后台工作者BackgroundWorker创建定时任务,实现定时从更新需要缓存的数据到redis

一、创建后台工作者

1、创建后台工作者

在application层 创建后台工作者类,内容如下 ,其中TAHM为我的自定义前缀名。 这个类的DoWorkAsync方法就是后台工作者默认定时执行的方法,重写这个方法可以填充自己的业务。

注意:为什么我在这个类里加了这么多service注入,那是因为我在第二步创建加载缓存的业务LoadEquipInfoService时,需要这些service,但是我在那边又没法初始化,只能在这个类里初始化,并借助doworkasync方法中的参数

workerContext.ServiceProvider.GetRequiredService<ILoadEquipInfoService>(); 来获取我的缓存业务接口对象,然后他需要的service初始化值就传递过去。

其实简单点理解,就是这个后台工作者类相当于一个控制器,DoWorkAsync相当于一个控制器暴露接口,后台工作者使用的service中需要注入和初始化的对象都要从这里通过workerContext来实现。

using JQ.TAHM.Application.Contracts;
using JQ.TAHM.Domain.Shared;
using JQ.TAHM.Domain;
using Microsoft.Extensions.DependencyInjection; 
using Volo.Abp.BackgroundWorkers;
using Volo.Abp.Caching;
using Volo.Abp.TenantManagement;
using Volo.Abp.Threading;

namespace JQ.TAHM.Application;

public class TAHMBackgroundWorker : AsyncPeriodicBackgroundWorkerBase
    {

        private readonly IDistributedCache<List<PageTahmCJ_descOutput>, string> _cj_descCache;
        private readonly IDistributedCache<List<TahmCJ_wd_tmpDto>, string> _cj_wd_tmpCache;
        private readonly ITenantRepository _tenantrepository;
        private readonly ITahmCJ_descAppService _cj_descappService;
        private readonly ITahmCJ_wd_tmpAppService _cj_wd_tmpappService;
        public TAHMBackgroundWorker(
             AbpAsyncTimer timer,
             IServiceScopeFactory serviceScopeFactory, IDistributedCache<List<PageTahmCJ_descOutput>, string> cj_de
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值