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 StoreLogAsync(JobEventData eventData);
Task RemoveAsync(string jobId);
Task CleanupAsync( Task CleanupAsync(
int maxResultCount, int maxResultCount,
TimeSpan jobExpiratime, 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; 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) public Task StoreLogAsync(JobEventData eventData)
{ {
return Task.CompletedTask; 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) public async virtual Task StoreLogAsync(JobEventData eventData)
{ {
using var unitOfWork = UnitOfWorkManager.Begin(); 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); var pollingJob = BuildPollingJobInfo(eventData.Entity.Id, eventData.Entity.Name);
await JobStore.StoreAsync(pollingJob);
await JobScheduler.RemoveAsync(pollingJob); await JobScheduler.RemoveAsync(pollingJob);
await JobStore.RemoveAsync(pollingJob.Id);
var cleaningJob = BuildCleaningJobInfo(eventData.Entity.Id, eventData.Entity.Name); var cleaningJob = BuildCleaningJobInfo(eventData.Entity.Id, eventData.Entity.Name);
await JobStore.StoreAsync(cleaningJob);
await JobScheduler.RemoveAsync(cleaningJob); await JobScheduler.RemoveAsync(cleaningJob);
await JobStore.RemoveAsync(cleaningJob.Id);
} }
public async Task HandleEventAsync(CreateEventData eventData) public async Task HandleEventAsync(CreateEventData eventData)
@ -73,9 +73,11 @@ namespace LY.MicroService.TaskManagement.EventBus.Handlers
private async Task QueueBackgroundJobAsync(CreateEventData eventData) private async Task QueueBackgroundJobAsync(CreateEventData eventData)
{ {
var pollingJob = BuildPollingJobInfo(eventData.Id, eventData.Name); var pollingJob = BuildPollingJobInfo(eventData.Id, eventData.Name);
await JobStore.StoreAsync(pollingJob);
await JobScheduler.QueueAsync(pollingJob); await JobScheduler.QueueAsync(pollingJob);
var cleaningJob = BuildCleaningJobInfo(eventData.Id, eventData.Name); var cleaningJob = BuildCleaningJobInfo(eventData.Id, eventData.Name);
await JobStore.StoreAsync(cleaningJob);
await JobScheduler.QueueAsync(cleaningJob); await JobScheduler.QueueAsync(cleaningJob);
} }
@ -105,7 +107,7 @@ namespace LY.MicroService.TaskManagement.EventBus.Handlers
{ {
return new JobInfo return new JobInfo
{ {
Id = tenantId.ToString(), Id = tenantId.ToString() + "_Polling",
Name = nameof(BackgroundPollingJob), Name = nameof(BackgroundPollingJob),
Group = "Polling", Group = "Polling",
Description = "Polling tasks to be executed", Description = "Polling tasks to be executed",
@ -127,7 +129,7 @@ namespace LY.MicroService.TaskManagement.EventBus.Handlers
{ {
return new JobInfo return new JobInfo
{ {
Id = tenantId.ToString(), Id = tenantId.ToString() + "_Cleaning",
Name = nameof(BackgroundCleaningJob), Name = nameof(BackgroundCleaningJob),
Group = "Cleaning", Group = "Cleaning",
Description = "Cleaning tasks to be executed", Description = "Cleaning tasks to be executed",

Loading…
Cancel
Save