summaryrefslogtreecommitdiff
path: root/src/FundLab.Worker
diff options
context:
space:
mode:
Diffstat (limited to 'src/FundLab.Worker')
-rw-r--r--src/FundLab.Worker/FundLab.Worker.fsproj18
-rw-r--r--src/FundLab.Worker/Program.fs12
-rw-r--r--src/FundLab.Worker/Worker.fs15
3 files changed, 45 insertions, 0 deletions
diff --git a/src/FundLab.Worker/FundLab.Worker.fsproj b/src/FundLab.Worker/FundLab.Worker.fsproj
new file mode 100644
index 0000000..9694479
--- /dev/null
+++ b/src/FundLab.Worker/FundLab.Worker.fsproj
@@ -0,0 +1,18 @@
+<Project Sdk="Microsoft.NET.Sdk.Worker">
+ <PropertyGroup>
+ <TargetFramework>net8.0</TargetFramework>
+ <OutputType>Exe</OutputType>
+ <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
+ <Nullable>enable</Nullable>
+ </PropertyGroup>
+ <ItemGroup>
+ <PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.1" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\FundLab.Domain\FundLab.Domain.fsproj" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Worker.fs" />
+ <Compile Include="Program.fs" />
+ </ItemGroup>
+</Project>
diff --git a/src/FundLab.Worker/Program.fs b/src/FundLab.Worker/Program.fs
new file mode 100644
index 0000000..058d9b7
--- /dev/null
+++ b/src/FundLab.Worker/Program.fs
@@ -0,0 +1,12 @@
+module FundLab.Worker.Program
+
+open Microsoft.Extensions.DependencyInjection
+open Microsoft.Extensions.Hosting
+
+[<EntryPoint>]
+let main argv =
+ Host.CreateDefaultBuilder(argv)
+ .ConfigureServices(fun services -> services.AddHostedService<Worker>() |> ignore)
+ .Build()
+ .Run()
+ 0
diff --git a/src/FundLab.Worker/Worker.fs b/src/FundLab.Worker/Worker.fs
new file mode 100644
index 0000000..6a7b7a7
--- /dev/null
+++ b/src/FundLab.Worker/Worker.fs
@@ -0,0 +1,15 @@
+namespace FundLab.Worker
+
+open System
+open System.Threading
+open System.Threading.Tasks
+open Microsoft.Extensions.Hosting
+
+type Worker() =
+ inherit BackgroundService()
+
+ override _.ExecuteAsync(stoppingToken: CancellationToken) : Task =
+ task {
+ while not stoppingToken.IsCancellationRequested do
+ do! Task.Delay(TimeSpan.FromMinutes 5, stoppingToken)
+ }