Browse Source

Make the default job of the new tenant persistent

pull/592/head
cKey 4 years ago
parent
commit
6748f99fab
  1. 2
      aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/IJobStore.cs
  2. 9
      aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/InMemoryJobStore.cs
  3. 8
      aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain/LINGYUN/Abp/TaskManagement/BackgroundJobStore.cs
  4. 10
      aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/EventBus/Handlers/TenantSynchronizer.cs

2
aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/IJobStore.cs

@ -20,6 +20,8 @@ public interface IJobStore
Task StoreLogAsync(JobEventData eventData);
Task RemoveAsync(string jobId);
Task CleanupAsync(
int maxResultCount,
TimeSpan jobExpiratime,

9
aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks/LINGYUN/Abp/BackgroundTasks/Internal/InMemoryJobStore.cs

@ -74,6 +74,15 @@ internal class InMemoryJobStore : IJobStore, ISingletonDependency
return Task.CompletedTask;
}
public async Task RemoveAsync(string jobId)
{
var job = await FindAsync(jobId);
if (job != null)
{
_memoryJobStore.Remove(job);
}
}
public Task StoreLogAsync(JobEventData eventData)
{
return Task.CompletedTask;

8
aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain/LINGYUN/Abp/TaskManagement/BackgroundJobStore.cs

@ -122,6 +122,14 @@ public class BackgroundJobStore : IJobStore, ITransientDependency
}
}
public async virtual Task RemoveAsync(string jobId)
{
using var unitOfWork = UnitOfWorkManager.Begin();
await JobInfoRepository.DeleteAsync(jobId);
await unitOfWork.SaveChangesAsync();
}
public async virtual Task StoreLogAsync(JobEventData eventData)
{
using var unitOfWork = UnitOfWorkManager.Begin();

10
aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/EventBus/Handlers/TenantSynchronizer.cs

@ -54,12 +54,12 @@ namespace LY.MicroService.TaskManagement.EventBus.Handlers
{
// 租户删除时移除轮询作业
var pollingJob = BuildPollingJobInfo(eventData.Entity.Id, eventData.Entity.Name);
await JobStore.StoreAsync(pollingJob);
await JobScheduler.RemoveAsync(pollingJob);
await JobStore.RemoveAsync(pollingJob.Id);
var cleaningJob = BuildCleaningJobInfo(eventData.Entity.Id, eventData.Entity.Name);
await JobStore.StoreAsync(cleaningJob);
await JobScheduler.RemoveAsync(cleaningJob);
await JobStore.RemoveAsync(cleaningJob.Id);
}
public async Task HandleEventAsync(CreateEventData eventData)
@ -73,9 +73,11 @@ namespace LY.MicroService.TaskManagement.EventBus.Handlers
private async Task QueueBackgroundJobAsync(CreateEventData eventData)
{
var pollingJob = BuildPollingJobInfo(eventData.Id, eventData.Name);
await JobStore.StoreAsync(pollingJob);
await JobScheduler.QueueAsync(pollingJob);
var cleaningJob = BuildCleaningJobInfo(eventData.Id, eventData.Name);
await JobStore.StoreAsync(cleaningJob);
await JobScheduler.QueueAsync(cleaningJob);
}
@ -105,7 +107,7 @@ namespace LY.MicroService.TaskManagement.EventBus.Handlers
{
return new JobInfo
{
Id = tenantId.ToString(),
Id = tenantId.ToString() + "_Polling",
Name = nameof(BackgroundPollingJob),
Group = "Polling",
Description = "Polling tasks to be executed",
@ -127,7 +129,7 @@ namespace LY.MicroService.TaskManagement.EventBus.Handlers
{
return new JobInfo
{
Id = tenantId.ToString(),
Id = tenantId.ToString() + "_Cleaning",
Name = nameof(BackgroundCleaningJob),
Group = "Cleaning",
Description = "Cleaning tasks to be executed",

Loading…
Cancel
Save