Commit dd1dfc7b by lizefeng

新增BackgroundService

parent 79176ac5
...@@ -3,13 +3,24 @@ ...@@ -3,13 +3,24 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.1</TargetFramework>
<LangVersion>latest</LangVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="2.1.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AutoTurnOver.Services\AutoTurnOver.Services.csproj" /> <ProjectReference Include="..\AutoTurnOver.Services\AutoTurnOver.Services.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Microsoft.Extensions.Hosting">
<HintPath>C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.hosting\2.1.1\lib\netstandard2.0\Microsoft.Extensions.Hosting.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Update="appsettings.json"> <None Update="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None> </None>
......
FROM microsoft/dotnet:2.1-aspnetcore-runtime-alpine AS base FROM microsoft/dotnet:2.1-runtime AS base
WORKDIR /app WORKDIR /app
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
FROM microsoft/dotnet:2.1-sdk-alpine AS build FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src WORKDIR /src
COPY AutoGeneratePurchaseAdvise/AutoGeneratePurchaseAdvise.csproj AutoGeneratePurchaseAdvise/ COPY AutoGeneratePurchaseAdvise/AutoGeneratePurchaseAdvise.csproj AutoGeneratePurchaseAdvise/
COPY AutoTurnOver.Services/AutoTurnOver.Services.csproj AutoTurnOver.Services/ COPY AutoTurnOver.Services/AutoTurnOver.Services.csproj AutoTurnOver.Services/
......
using AutoTurnOver.Services;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace AutoGeneratePurchaseAdvise
{
public class GeneratePurchaseAdviseBackgroundService : BackgroundService
{
private Timer _timer;
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
_timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromHours(1));
return Task.CompletedTask;
}
private void DoWork(object state)
{
try
{
Console.WriteLine($"开始采购平均值统计任务,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
PurchaseAdviseServices.Generate();
Console.WriteLine($"开始采购平均值统计任务,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
public override void Dispose()
{
base.Dispose();
_timer?.Dispose();
}
}
}
using AutoTurnOver.Services; using AutoTurnOver.Services;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System; using System;
using System.Threading.Tasks;
namespace AutoGeneratePurchaseAdvise namespace AutoGeneratePurchaseAdvise
{ {
class Program class Program
{ {
static void Main(string[] args) static async Task Main(string[] args)
{ {
Console.WriteLine("采购平均值计算任务启动...");
// 创建采购计划 // 创建采购计划
PurchaseAdviseServices.Generate(); PurchaseAdviseServices.Generate();
var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
{
services.AddHostedService<GeneratePurchaseAdviseBackgroundService>();
});
await builder.RunConsoleAsync();
} }
} }
} }
...@@ -21,6 +21,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "test", "test\test.csproj", ...@@ -21,6 +21,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "test", "test\test.csproj",
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoGeneratePurchaseAdvise", "AutoGeneratePurchaseAdvise\AutoGeneratePurchaseAdvise.csproj", "{350405A0-13DF-4F20-8B3F-0AB923BE9DFF}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoGeneratePurchaseAdvise", "AutoGeneratePurchaseAdvise\AutoGeneratePurchaseAdvise.csproj", "{350405A0-13DF-4F20-8B3F-0AB923BE9DFF}"
EndProject EndProject
Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{23B3C567-1F02-4954-B621-26490D75F0FC}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
...@@ -59,6 +61,10 @@ Global ...@@ -59,6 +61,10 @@ Global
{350405A0-13DF-4F20-8B3F-0AB923BE9DFF}.Debug|Any CPU.Build.0 = Debug|Any CPU {350405A0-13DF-4F20-8B3F-0AB923BE9DFF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{350405A0-13DF-4F20-8B3F-0AB923BE9DFF}.Release|Any CPU.ActiveCfg = Release|Any CPU {350405A0-13DF-4F20-8B3F-0AB923BE9DFF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{350405A0-13DF-4F20-8B3F-0AB923BE9DFF}.Release|Any CPU.Build.0 = Release|Any CPU {350405A0-13DF-4F20-8B3F-0AB923BE9DFF}.Release|Any CPU.Build.0 = Release|Any CPU
{23B3C567-1F02-4954-B621-26490D75F0FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{23B3C567-1F02-4954-B621-26490D75F0FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{23B3C567-1F02-4954-B621-26490D75F0FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{23B3C567-1F02-4954-B621-26490D75F0FC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment