Browse Source

Background job remove sync api

pull/2464/head
Halil İbrahim Kalkan 7 years ago
parent
commit
d332818f6a
  1. 6
      framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/BackgroundJobWorker.cs
  2. 34
      framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/IBackgroundJobStore.cs
  3. 31
      modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo/Abp/BackgroundJobs/BackgroundJobStore.cs
  4. 5
      modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo/Abp/BackgroundJobs/AbpBackgroundJobsTestBaseModule.cs
  5. 9
      modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo/Abp/BackgroundJobs/BackgroundJobsTestDataBuilder.cs

6
framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/BackgroundJobWorker.cs

@ -36,7 +36,7 @@ namespace Volo.Abp.BackgroundJobs
{ {
var store = scope.ServiceProvider.GetRequiredService<IBackgroundJobStore>(); var store = scope.ServiceProvider.GetRequiredService<IBackgroundJobStore>();
var waitingJobs = store.GetWaitingJobs(WorkerOptions.MaxJobFetchCount); var waitingJobs = AsyncHelper.RunSync(() => store.GetWaitingJobsAsync(WorkerOptions.MaxJobFetchCount));
if (!waitingJobs.Any()) if (!waitingJobs.Any())
{ {
@ -62,7 +62,7 @@ namespace Volo.Abp.BackgroundJobs
{ {
jobExecuter.Execute(context); jobExecuter.Execute(context);
store.Delete(jobInfo.Id); AsyncHelper.RunSync(() => store.DeleteAsync(jobInfo.Id));
} }
catch (BackgroundJobExecutionException) catch (BackgroundJobExecutionException)
{ {
@ -94,7 +94,7 @@ namespace Volo.Abp.BackgroundJobs
{ {
try try
{ {
store.Update(jobInfo); AsyncHelper.RunSync(() => store.UpdateAsync(jobInfo));
} }
catch (Exception updateEx) catch (Exception updateEx)
{ {

34
framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/IBackgroundJobStore.cs

@ -9,13 +9,6 @@ namespace Volo.Abp.BackgroundJobs
/// </summary> /// </summary>
public interface IBackgroundJobStore public interface IBackgroundJobStore
{ {
/// <summary>
/// Gets a BackgroundJobInfo based on the given jobId.
/// </summary>
/// <param name="jobId">The Job Unique Identifier.</param>
/// <returns>The BackgroundJobInfo object.</returns>
BackgroundJobInfo Find(Guid jobId);
/// <summary> /// <summary>
/// Gets a BackgroundJobInfo based on the given jobId. /// Gets a BackgroundJobInfo based on the given jobId.
/// </summary> /// </summary>
@ -23,27 +16,12 @@ namespace Volo.Abp.BackgroundJobs
/// <returns>The BackgroundJobInfo object.</returns> /// <returns>The BackgroundJobInfo object.</returns>
Task<BackgroundJobInfo> FindAsync(Guid jobId); Task<BackgroundJobInfo> FindAsync(Guid jobId);
/// <summary>
/// Inserts a background job.
/// </summary>
/// <param name="jobInfo">Job information.</param>
void Insert(BackgroundJobInfo jobInfo);
/// <summary> /// <summary>
/// Inserts a background job. /// Inserts a background job.
/// </summary> /// </summary>
/// <param name="jobInfo">Job information.</param> /// <param name="jobInfo">Job information.</param>
Task InsertAsync(BackgroundJobInfo jobInfo); Task InsertAsync(BackgroundJobInfo jobInfo);
/// <summary>
/// Gets waiting jobs. It should get jobs based on these:
/// Conditions: !IsAbandoned And NextTryTime &lt;= Clock.Now.
/// Order by: Priority DESC, TryCount ASC, NextTryTime ASC.
/// Maximum result: <paramref name="maxResultCount"/>.
/// </summary>
/// <param name="maxResultCount">Maximum result count.</param>
List<BackgroundJobInfo> GetWaitingJobs(int maxResultCount);
/// <summary> /// <summary>
/// Gets waiting jobs. It should get jobs based on these: /// Gets waiting jobs. It should get jobs based on these:
/// Conditions: !IsAbandoned And NextTryTime &lt;= Clock.Now. /// Conditions: !IsAbandoned And NextTryTime &lt;= Clock.Now.
@ -53,24 +31,12 @@ namespace Volo.Abp.BackgroundJobs
/// <param name="maxResultCount">Maximum result count.</param> /// <param name="maxResultCount">Maximum result count.</param>
Task<List<BackgroundJobInfo>> GetWaitingJobsAsync(int maxResultCount); Task<List<BackgroundJobInfo>> GetWaitingJobsAsync(int maxResultCount);
/// <summary>
/// Deletes a job.
/// </summary>
/// <param name="jobId">The Job Unique Identifier.</param>
void Delete(Guid jobId);
/// <summary> /// <summary>
/// Deletes a job. /// Deletes a job.
/// </summary> /// </summary>
/// <param name="jobId">The Job Unique Identifier.</param> /// <param name="jobId">The Job Unique Identifier.</param>
Task DeleteAsync(Guid jobId); Task DeleteAsync(Guid jobId);
/// <summary>
/// Updates a job.
/// </summary>
/// <param name="jobInfo">Job information.</param>
void Update(BackgroundJobInfo jobInfo);
/// <summary> /// <summary>
/// Updates a job. /// Updates a job.
/// </summary> /// </summary>

31
modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo/Abp/BackgroundJobs/BackgroundJobStore.cs

@ -20,13 +20,6 @@ namespace Volo.Abp.BackgroundJobs
BackgroundJobRepository = backgroundJobRepository; BackgroundJobRepository = backgroundJobRepository;
} }
public BackgroundJobInfo Find(Guid jobId)
{
return ObjectMapper.Map<BackgroundJobRecord, BackgroundJobInfo>(
BackgroundJobRepository.Find(jobId)
);
}
public virtual async Task<BackgroundJobInfo> FindAsync(Guid jobId) public virtual async Task<BackgroundJobInfo> FindAsync(Guid jobId)
{ {
return ObjectMapper.Map<BackgroundJobRecord, BackgroundJobInfo>( return ObjectMapper.Map<BackgroundJobRecord, BackgroundJobInfo>(
@ -34,13 +27,6 @@ namespace Volo.Abp.BackgroundJobs
); );
} }
public void Insert(BackgroundJobInfo jobInfo)
{
BackgroundJobRepository.Insert(
ObjectMapper.Map<BackgroundJobInfo, BackgroundJobRecord>(jobInfo)
);
}
public virtual async Task InsertAsync(BackgroundJobInfo jobInfo) public virtual async Task InsertAsync(BackgroundJobInfo jobInfo)
{ {
await BackgroundJobRepository.InsertAsync( await BackgroundJobRepository.InsertAsync(
@ -62,28 +48,11 @@ namespace Volo.Abp.BackgroundJobs
); );
} }
public void Delete(Guid jobId)
{
BackgroundJobRepository.Delete(jobId);
}
public virtual async Task DeleteAsync(Guid jobId) public virtual async Task DeleteAsync(Guid jobId)
{ {
await BackgroundJobRepository.DeleteAsync(jobId); await BackgroundJobRepository.DeleteAsync(jobId);
} }
public void Update(BackgroundJobInfo jobInfo)
{
var backgroundJobRecord = BackgroundJobRepository.Find(jobInfo.Id);
if (backgroundJobRecord == null)
{
return;
}
ObjectMapper.Map(jobInfo, backgroundJobRecord);
BackgroundJobRepository.Update(backgroundJobRecord);
}
public virtual async Task UpdateAsync(BackgroundJobInfo jobInfo) public virtual async Task UpdateAsync(BackgroundJobInfo jobInfo)
{ {
var backgroundJobRecord = await BackgroundJobRepository.FindAsync(jobInfo.Id); var backgroundJobRecord = await BackgroundJobRepository.FindAsync(jobInfo.Id);

5
modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo/Abp/BackgroundJobs/AbpBackgroundJobsTestBaseModule.cs

@ -1,6 +1,7 @@
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Autofac; using Volo.Abp.Autofac;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Volo.Abp.Threading;
namespace Volo.Abp.BackgroundJobs namespace Volo.Abp.BackgroundJobs
{ {
@ -28,9 +29,9 @@ namespace Volo.Abp.BackgroundJobs
{ {
using (var scope = context.ServiceProvider.CreateScope()) using (var scope = context.ServiceProvider.CreateScope())
{ {
scope.ServiceProvider AsyncHelper.RunSync(() => scope.ServiceProvider
.GetRequiredService<BackgroundJobsTestDataBuilder>() .GetRequiredService<BackgroundJobsTestDataBuilder>()
.Build(); .BuildAsync());
} }
} }
} }

9
modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo/Abp/BackgroundJobs/BackgroundJobsTestDataBuilder.cs

@ -1,4 +1,5 @@
using System; using System;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Timing; using Volo.Abp.Timing;
@ -20,9 +21,9 @@ namespace Volo.Abp.BackgroundJobs
_clock = clock; _clock = clock;
} }
public void Build() public async Task BuildAsync()
{ {
_backgroundJobRepository.Insert( await _backgroundJobRepository.InsertAsync(
new BackgroundJobRecord(_testData.JobId1) new BackgroundJobRecord(_testData.JobId1)
{ {
JobName = "TestJobName", JobName = "TestJobName",
@ -36,7 +37,7 @@ namespace Volo.Abp.BackgroundJobs
} }
); );
_backgroundJobRepository.Insert( await _backgroundJobRepository.InsertAsync(
new BackgroundJobRecord(_testData.JobId2) new BackgroundJobRecord(_testData.JobId2)
{ {
JobName = "TestJobName", JobName = "TestJobName",
@ -50,7 +51,7 @@ namespace Volo.Abp.BackgroundJobs
} }
); );
_backgroundJobRepository.Insert( await _backgroundJobRepository.InsertAsync(
new BackgroundJobRecord(_testData.JobId3) new BackgroundJobRecord(_testData.JobId3)
{ {
JobName = "TestJobName", JobName = "TestJobName",

Loading…
Cancel
Save