-
-
Notifications
You must be signed in to change notification settings - Fork 90
Expand file tree
/
Copy pathBackgroundServiceRegistrationExtensions.cs
More file actions
32 lines (28 loc) · 1.26 KB
/
BackgroundServiceRegistrationExtensions.cs
File metadata and controls
32 lines (28 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using LinkDotNet.Blog.Web.Features;
using NCronJob;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
namespace LinkDotNet.Blog.Web.RegistrationExtensions;
public static class BackgroundServiceRegistrationExtensions
{
public static void AddBackgroundServices(this IServiceCollection services)
{
services.Configure<HostOptions>(options =>
{
options.ServicesStartConcurrently = true;
options.ServicesStopConcurrently = true;
});
services.AddNCronJob(options =>
{
options
.AddJob<BlogPostPublisher>(p => p.WithCronExpression("* * * * *"))
.ExecuteWhen(s => s.RunJob<SimilarBlogPostJob>()
.OnlyIf((IOptions<ApplicationConfiguration> applicationConfiguration) => applicationConfiguration.Value.ShowSimilarPosts));
options.AddJob<TransformBlogPostRecordsJob>(p => p.WithCronExpression("0/10 * * * *"));
options.AddJob<SimilarBlogPostJob>(c => c
.WithName(nameof(SimilarBlogPostJob))
.OnlyIf((IOptions<ApplicationConfiguration> applicationConfiguration) => applicationConfiguration.Value.ShowSimilarPosts));
});
}
}