有时工作中会遇到定时每隔多长事间去请求一个接口方法,例如定时同步数据,定时更新。使用ABP框架可以更简单实现定时任务。
1.首先在你的service服务层创建一个定时任务类。要继承ABP框架自带的QuartzBackgroundWorkerBase, ITransientDependency两个接口。
1 using JingGong.Abp.Application.MES; 2 using Quartz; 3 using System; 4 using System.Collections.Generic; 5 using System.Linq; 6 using System.Text; 7 using System.Threading.Tasks; 8 using Volo.Abp.BackgroundWorkers.Quartz; 9 using Volo.Abp.DependencyInjection; 10 using Volo.Abp.Uow; 11 12 namespace JingGong.Abp.Jobs 13 { 14 public class TestClass : QuartzBackgroundWorkerBase, ITransientDependency 15 { 16 private readonly WorkOrderAppService _workOrderAppService; 17 public TestClass(WorkOrderAppService workOrderAppService) 18 { 19 JobDetail = JobBuilder.Create<TestClass>().WithIdentity("你的定时任务名称").Build(); 20 Trigger = TriggerBuilder.Create().WithIdentity("你的定时任务名称").WithSimpleSchedule(s => s.WithIntervalInSeconds(30).RepeatForever()).StartNow().Build(); 21 _workOrderAppService = workOrderAppService; 22 } 23 24 [UnitOfWork] 25 public override async Task Execute(IJobExecutionContext context) 26 { 27 //定时调用你的方法任务 28 await _workOrderAppService.GetAsync(1); 29 throw new NotImplementedException(); 30 } 31 } 32 }
JobDetail是你创建的一个作业任务。Trigger是创建的一个触发器,你可以选择多久执行触发一次等触发条件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构