From 6b90611f54e4ac12c6228910aa32a1ae6a016219 Mon Sep 17 00:00:00 2001 From: cKey <35512826+colinin@users.noreply.github.com> Date: Mon, 25 Apr 2022 11:47:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(tasks):=20=E6=89=8B=E5=8A=A8=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=9A=E8=BF=87=E4=BA=8B=E4=BB=B6=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E7=8A=B6=E6=80=81=E7=9A=84=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E5=8D=95=E5=85=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Abp/TaskManagement/BackgroundJobStore.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain/LINGYUN/Abp/TaskManagement/BackgroundJobStore.cs b/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain/LINGYUN/Abp/TaskManagement/BackgroundJobStore.cs index 2eb5ced5b..59a8cfbcf 100644 --- a/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain/LINGYUN/Abp/TaskManagement/BackgroundJobStore.cs +++ b/aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain/LINGYUN/Abp/TaskManagement/BackgroundJobStore.cs @@ -16,6 +16,7 @@ public class BackgroundJobStore : IJobStore, ITransientDependency { protected IObjectMapper ObjectMapper { get; } protected ICurrentTenant CurrentTenant { get; } + protected IUnitOfWorkManager UnitOfWorkManager { get; } protected IBackgroundJobInfoRepository JobInfoRepository { get; } protected IBackgroundJobLogRepository JobLogRepository { get; } @@ -24,12 +25,14 @@ public class BackgroundJobStore : IJobStore, ITransientDependency public BackgroundJobStore( IObjectMapper objectMapper, ICurrentTenant currentTenant, + IUnitOfWorkManager unitOfWorkManager, IBackgroundJobInfoRepository jobInfoRepository, IBackgroundJobLogRepository jobLogRepository, IOptions options) { ObjectMapper = objectMapper; CurrentTenant = currentTenant; + UnitOfWorkManager = unitOfWorkManager; JobInfoRepository = jobInfoRepository; JobLogRepository = jobLogRepository; Options = options.Value; @@ -54,9 +57,9 @@ public class BackgroundJobStore : IJobStore, ITransientDependency return await JobInfoRepository.FindJobAsync(jobId); } - [UnitOfWork] public async virtual Task StoreAsync(JobInfo jobInfo) { + using var unitOfWork = UnitOfWorkManager.Begin(); using (CurrentTenant.Change(jobInfo.TenantId)) { var backgroundJobInfo = await JobInfoRepository.FindAsync(jobInfo.Id); @@ -115,12 +118,13 @@ public class BackgroundJobStore : IJobStore, ITransientDependency await JobInfoRepository.InsertAsync(backgroundJobInfo); } + await unitOfWork.SaveChangesAsync(); } } - [UnitOfWork] public async virtual Task StoreLogAsync(JobEventData eventData) { + using var unitOfWork = UnitOfWorkManager.Begin(); using (CurrentTenant.Change(eventData.TenantId)) { var jogLog = new BackgroundJobLog( @@ -138,15 +142,17 @@ public class BackgroundJobStore : IJobStore, ITransientDependency eventData.Exception); await JobLogRepository.InsertAsync(jogLog); + + await unitOfWork.SaveChangesAsync(); } } - [UnitOfWork] public async virtual Task CleanupAsync( int maxResultCount, TimeSpan jobExpiratime, CancellationToken cancellationToken = default) { + using var unitOfWork = UnitOfWorkManager.Begin(); var jobs = await JobInfoRepository.GetExpiredJobsAsync( Options.NodeName, maxResultCount, @@ -154,6 +160,8 @@ public class BackgroundJobStore : IJobStore, ITransientDependency cancellationToken); await JobInfoRepository.DeleteManyAsync(jobs, cancellationToken: cancellationToken); + + await unitOfWork.SaveChangesAsync(); } protected virtual Exception GetSourceException(Exception exception)