Skip to content

Commit c08a0e1

Browse files
committed
added polling worker as a background service to the web project
1 parent 7d4d36f commit c08a0e1

File tree

8 files changed

+12
-6
lines changed

8 files changed

+12
-6
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ riderModule.iml
66
settings.json
77
.vs
88
.idea
9-
ComicVineAPI.sln.DotSettings.user
9+
*.sln.DotSettings.user

ComicVine.API/ComicVine.API.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
<ItemGroup>
2828
<ProjectReference Include="..\VinePlus.Core\VinePlus.Core.fsproj" />
2929
<ProjectReference Include="..\VinePlus.Database\VinePlus.Database.csproj" />
30+
<ProjectReference Include="..\VinePlus.Polling\VinePlus.Polling.fsproj" />
3031
</ItemGroup>
3132

3233
<ItemGroup>

ComicVine.API/Program.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,18 @@
77
// using ComicVine.API.Database;
88
using Comicvine.Core;
99
using Comicvine.Database;
10+
using Comicvine.Polling;
1011
using Microsoft.EntityFrameworkCore;
1112

1213
var builder = WebApplication.CreateBuilder(args);
1314

1415
// Add services to the container.
16+
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true); // https://stackoverflow.com/questions/69961449/net6-and-datetime-problem-cannot-write-datetime-with-kind-utc-to-postgresql-ty
1517

1618
builder.Services.AddControllers().AddJsonOptions(
1719
x => x.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter())
1820
);
21+
builder.Services.AddHostedService<PollingWorker>(); // adds the pollng background service
1922
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
2023
builder.Services.AddEndpointsApiExplorer();
2124
builder.Services.AddSwaggerGen(

ComicVine.API/appsettings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
"Logging": {
33
"LogLevel": {
44
"Default": "Information",
5-
"Microsoft.AspNetCore": "Warning"
5+
"Microsoft.AspNetCore": "Information",
6+
"Microsoft.EntityFrameworkCore.Database.Command": "Warning"
67
}
78
},
89
"AllowedHosts": "*"
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ with
3333
this.New.AddRange(other.New)
3434
this.Update.AddRange(other.Update)
3535

36-
type Worker(logger: ILogger<Worker>, scopeFactory: IServiceScopeFactory) =
36+
type PollingWorker(logger: ILogger<PollingWorker>, scopeFactory: IServiceScopeFactory) =
3737
inherit BackgroundService()
3838
// implements comparison for posts
3939
let postComparer =
@@ -317,7 +317,7 @@ type Worker(logger: ILogger<Worker>, scopeFactory: IServiceScopeFactory) =
317317
task {
318318
// scoping stuff for injection database context: https://pgroene.wordpress.com/2018/07/12/injecting-a-scoped-service-into-ihostedservice/
319319
use scope = scopeFactory.CreateScope()
320-
use timer = new PeriodicTimer(TimeSpan.FromMinutes(1))
320+
use timer = new PeriodicTimer(TimeSpan.FromMinutes(5))
321321

322322
let dbCtx =
323323
scope.ServiceProvider.GetRequiredService<ComicvineContext>()

VinePlus.Polling/Program.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ module Program =
1414
Host
1515
.CreateDefaultBuilder(args)
1616
.ConfigureServices(fun hostContext services ->
17-
services.AddHostedService<Worker>()
17+
services.AddHostedService<PollingWorker>()
1818
|> ignore
1919
services.RegisterDataServices(hostContext.Configuration) // IConfiguration for worker service in hostContext.Configuration
2020
|> ignore

VinePlus.Polling/VinePlus.Polling.fsproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44
<TargetFramework>net6.0</TargetFramework>
55
<UserSecretsId>dotnet-Comicvine.Polling-67BD27B0-78C0-4AA6-AEBC-404AE3B9AC07</UserSecretsId>
66
<RootNamespace>Comicvine.Polling</RootNamespace>
7+
<!-- <ServerGarbageCollection>true</ServerGarbageCollection>-->
78
</PropertyGroup>
89

910

1011
<ItemGroup>
11-
<Compile Include="Worker.fs" />
12+
<Compile Include="PollingWorker.fs" />
1213
<Compile Include="Program.fs" />
1314
</ItemGroup>
1415

File renamed without changes.

0 commit comments

Comments
 (0)