Skip to content

Commit c634f22

Browse files
authored
refactor: Adjust background tasks (#580)
* chore: PubSub -> Pub * refactor: Adjust background tasks * chore: Fix code smell
1 parent 0a4e70d commit c634f22

File tree

8 files changed

+37
-59
lines changed

8 files changed

+37
-59
lines changed

src/BuildingBlocks/Extensions/Masa.BuildingBlocks.Extensions.BackgroundJobs/Extensions/ServiceCollectionExtensions.cs

+4-6
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,11 @@ public static IServiceCollection AddBackgroundJob(
2121
backgroundJobOptionsBuilder.Assemblies ?? MasaApp.GetAssemblies()).Build());
2222
services.TryAddSingleton<IBackgroundJobExecutor, DefaultBackgroundJobExecutor>();
2323

24-
services.TryAddSingleton<IProcessingServer, DefaultHostedService>();
25-
services.AddHostedService<BackgroundJobService>();
26-
return services;
27-
}
24+
if (backgroundJobOptionsBuilder.DisableBackgroundJob)
25+
{
26+
return services;
27+
}
2828

29-
public static IServiceCollection AddBackgroundJobServer(this IServiceCollection services)
30-
{
3129
services.TryAddSingleton<IProcessingServer, DefaultHostedService>();
3230
services.AddHostedService<BackgroundJobService>();
3331
return services;
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

3-
<PropertyGroup>
4-
<TargetFramework>net6.0</TargetFramework>
5-
<ImplicitUsings>enable</ImplicitUsings>
6-
<Nullable>enable</Nullable>
7-
</PropertyGroup>
3+
<PropertyGroup>
4+
<TargetFramework>net6.0</TargetFramework>
5+
<ImplicitUsings>enable</ImplicitUsings>
6+
<Nullable>enable</Nullable>
7+
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="$(MicrosoftPackageVersion)" />
11-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="$(MicrosoftPackageVersion)" />
12-
</ItemGroup>
10+
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="$(MicrosoftPackageVersion)"/>
11+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="$(MicrosoftPackageVersion)"/>
12+
</ItemGroup>
1313

14-
<ItemGroup>
15-
<ProjectReference Include="..\..\..\Utils\Extensions\Masa.Utils.Extensions.DotNet\Masa.Utils.Extensions.DotNet.csproj" />
16-
<ProjectReference Include="..\..\Exception\Masa.BuildingBlocks.Exceptions\Masa.BuildingBlocks.Exceptions.csproj" />
17-
</ItemGroup>
14+
<ItemGroup>
15+
<ProjectReference Include="..\..\..\Utils\Extensions\Masa.Utils.Extensions.DotNet\Masa.Utils.Extensions.DotNet.csproj"/>
16+
<ProjectReference Include="..\..\Exception\Masa.BuildingBlocks.Exceptions\Masa.BuildingBlocks.Exceptions.csproj"/>
17+
</ItemGroup>
1818

1919
</Project>

src/Contrib/Extensions/Masa.Contrib.Extensions.BackgroundJobs.Hangfire/Extensions/BackgroundJobOptionsBuilderExtensions.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,13 @@ private static void UseHangfireCore(this BackgroundJobOptionsBuilder backgroundJ
2828

2929
backgroundJobOptionsBuilder.Services.AddSingleton<BackgroundJobProvider>();
3030

31-
backgroundJobOptionsBuilder.Services.AddBackgroundJobServer();
3231
backgroundJobOptionsBuilder.Services.TryAddSingleton<IBackgroundJobManager, DefaultBackgroundJobManager>();
3332
configure.Invoke(backgroundJobOptionsBuilder.Services);
3433
}
3534

35+
#pragma warning disable S2094
3636
private sealed class BackgroundJobProvider
3737
{
3838
}
39+
#pragma warning restore S2094
3940
}

src/Contrib/Extensions/Masa.Contrib.Extensions.BackgroundJobs.Memory/_Imports.cs

-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@
22
// Licensed under the MIT License. See LICENSE.txt in the project root for license information.
33

44
global using Masa.BuildingBlocks.Data;
5-
global using Masa.BuildingBlocks.Extensions.BackgroundJobs;
65
global using Masa.Contrib.Data.IdGenerator.NormalGuid;
76
global using Masa.Contrib.Data.Serialization.Json;
87
global using Masa.Contrib.Extensions.BackgroundJobs;
9-
global using Masa.Contrib.Extensions.BackgroundJobs.Extensions;
108
global using Masa.Contrib.Extensions.BackgroundJobs.Memory;
119
global using Microsoft.Extensions.DependencyInjection;
1210
global using Microsoft.Extensions.DependencyInjection.Extensions;
+10-12
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
// ReSharper disable once CheckNamespace
88

9-
namespace Masa.Contrib.Extensions.BackgroundJobs.Extensions;
9+
namespace Masa.Contrib.Extensions.BackgroundJobs;
1010

1111
internal static class BackgroundJobOptionsBuilderExtensions
1212
{
@@ -21,20 +21,18 @@ public static void UseBackgroundJobCore(
2121
backgroundJobOptionsBuilder.Services.AddSingleton<BackgroundJobProvider>();
2222

2323
backgroundJobOptionsBuilder.Services.Configure(configure);
24-
if (!backgroundJobOptionsBuilder.DisableBackgroundJob)
25-
{
26-
backgroundJobOptionsBuilder.Services.TryAddSingleton<IBackgroundJobProcessor>(serviceProvider =>
27-
new BackgroundJobProcessor(serviceProvider, deserializerFunc.Invoke(serviceProvider)));
28-
backgroundJobOptionsBuilder.Services.Add(
29-
new ServiceDescriptor(
30-
typeof(IProcessor),
31-
serviceProvider => serviceProvider.GetRequiredService<IBackgroundJobProcessor>(),
32-
ServiceLifetime.Singleton));
33-
}
34-
backgroundJobOptionsBuilder.Services.AddBackgroundJobServer();
24+
backgroundJobOptionsBuilder.Services.TryAddSingleton<IBackgroundJobProcessor>(serviceProvider =>
25+
new BackgroundJobProcessor(serviceProvider, deserializerFunc.Invoke(serviceProvider)));
26+
backgroundJobOptionsBuilder.Services.Add(
27+
new ServiceDescriptor(
28+
typeof(IProcessor),
29+
serviceProvider => serviceProvider.GetRequiredService<IBackgroundJobProcessor>(),
30+
ServiceLifetime.Singleton));
3531
}
3632

33+
#pragma warning disable S2094
3734
private sealed class BackgroundJobProvider
3835
{
3936
}
37+
#pragma warning restore S2094
4038
}

src/Contrib/Extensions/Masa.Contrib.Extensions.BackgroundJobs/Masa.Contrib.Extensions.BackgroundJobs.csproj

-4
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,4 @@
1111
<ProjectReference Include="..\..\..\BuildingBlocks\Extensions\Masa.BuildingBlocks.Extensions.BackgroundJobs\Masa.BuildingBlocks.Extensions.BackgroundJobs.csproj" />
1212
</ItemGroup>
1313

14-
<ItemGroup>
15-
<Folder Include="Extensions" />
16-
</ItemGroup>
17-
1814
</Project>

src/Contrib/Extensions/Tests/Masa.Contrib.Extensions.BackgroundJobs.Tests/BackgroundJobTest.cs

+8-21
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,7 @@ public void TestUseBackgroundJob()
1414

1515
services.AddBackgroundJob(jobBuilder =>
1616
{
17-
jobBuilder.UseBackgroundJobCore(_ =>
18-
{
19-
20-
},
17+
jobBuilder.UseBackgroundJobCore(_ => { },
2118
_ => deserializer.Object);
2219
});
2320

@@ -40,17 +37,13 @@ public void TestUseBackgroundJobByDisableBackgroundJob()
4037
services.AddBackgroundJob(jobBuilder =>
4138
{
4239
jobBuilder.DisableBackgroundJob = true;
43-
jobBuilder.UseBackgroundJobCore(_ =>
44-
{
45-
46-
},
47-
_ => deserializer.Object);
40+
jobBuilder.UseBackgroundJobCore(_ => { }, _ => deserializer.Object);
4841
});
4942

50-
Assert.IsFalse(services.Any(s => s.ServiceType == typeof(IBackgroundJobProcessor)));
51-
Assert.IsFalse(services.Any(s => s.ServiceType == typeof(IProcessor)));
52-
Assert.IsTrue(services.Any(s => s.ServiceType == typeof(IProcessingServer) && s.Lifetime == ServiceLifetime.Singleton));
53-
Assert.IsTrue(services.Any(s => s.ServiceType == typeof(IHostedService) && s.Lifetime == ServiceLifetime.Singleton));
43+
Assert.IsFalse(services.Any(s => s.ServiceType == typeof(IProcessingServer)));
44+
Assert.IsFalse(services.Any(s => s.ServiceType == typeof(IHostedService) && s.Lifetime == ServiceLifetime.Singleton));
45+
Assert.IsTrue(services.Any(s => s.ServiceType == typeof(IBackgroundJobProcessor)));
46+
Assert.IsTrue(services.Any(s => s.ServiceType == typeof(IProcessor)));
5447
}
5548

5649
[TestMethod]
@@ -63,15 +56,9 @@ public void TestUseBackgroundJobByMulti()
6356
services.AddSingleton(backgroundJobStorage.Object);
6457
services.AddBackgroundJob(jobBuilder =>
6558
{
66-
jobBuilder.UseBackgroundJobCore(backgroundJobOptions =>
67-
{
68-
backgroundJobOptions.PollInterval = 1;
69-
},
59+
jobBuilder.UseBackgroundJobCore(backgroundJobOptions => { backgroundJobOptions.PollInterval = 1; },
7060
_ => deserializer.Object);
71-
jobBuilder.UseBackgroundJobCore(backgroundJobOptions =>
72-
{
73-
backgroundJobOptions.PollInterval = 2;
74-
},
61+
jobBuilder.UseBackgroundJobCore(backgroundJobOptions => { backgroundJobOptions.PollInterval = 2; },
7562
_ => deserializer.Object);
7663
});
7764

src/Contrib/Extensions/Tests/Masa.Contrib.Extensions.BackgroundJobs.Tests/_Imports.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
global using Masa.BuildingBlocks.Data;
55
global using Masa.BuildingBlocks.Extensions.BackgroundJobs;
6-
global using Masa.Contrib.Extensions.BackgroundJobs.Extensions;
6+
global using Masa.Contrib.Extensions.BackgroundJobs;
77
global using Masa.Contrib.Extensions.BackgroundJobs.Tests.Parameters;
88
global using Microsoft.Extensions.DependencyInjection;
99
global using Microsoft.Extensions.Hosting;

0 commit comments

Comments
 (0)