Commit 32e94794 by guanzhenshan

增加任务支持

parent 8f590d2d
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>netcoreapp3.1</TargetFramework>
<LangVersion>latest</LangVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
......
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/core/runtime:3.1-buster-slim AS base
WORKDIR /app
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["Bailun.DC.BalanceSheet4K/Bailun.DC.BalanceSheet4K.csproj", "Bailun.DC.BalanceSheet4K/"]
COPY ["Bailun.DC.Common/Bailun.DC.Common.csproj", "Bailun.DC.Common/"]
COPY ["Bailun.DC.Models/Bailun.DC.Models.csproj", "Bailun.DC.Models/"]
RUN dotnet restore "Bailun.DC.BalanceSheet4K/Bailun.DC.BalanceSheet4K.csproj"
COPY . .
WORKDIR "/src/Bailun.DC.BalanceSheet4K"
RUN dotnet build "Bailun.DC.BalanceSheet4K.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Bailun.DC.BalanceSheet4K.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Bailun.DC.BalanceSheet4K.dll"]
using System; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System;
using System.Threading.Tasks;
namespace Bailun.DC.BalanceSheet4K namespace Bailun.DC.BalanceSheet4K
{ {
...@@ -7,20 +10,21 @@ namespace Bailun.DC.BalanceSheet4K ...@@ -7,20 +10,21 @@ namespace Bailun.DC.BalanceSheet4K
/// </summary> /// </summary>
class Program class Program
{ {
static void Main(string[] args)
static async Task Main(string[] args)
{ {
//Console.WriteLine("启动服务 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); Console.WriteLine("启动服务 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
//var builder = new HostBuilder().ConfigureServices((hostContext, services) => var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
//{ {
// services.AddHostedService<Services>(); services.AddHostedService<Services>();
//}); });
//await builder.RunConsoleAsync(); await builder.RunConsoleAsync();
var _service = new Services(); //var _service = new Services();
var day = DateTime.Parse("2020-11-01"); //var day = DateTime.Parse("2020-11-01");
_service.Init(day); //_service.Init(day);
} }
} }
} }
...@@ -4,12 +4,47 @@ using System.Text; ...@@ -4,12 +4,47 @@ using System.Text;
using MySql.Data.MySqlClient; using MySql.Data.MySqlClient;
using Dapper; using Dapper;
using Bailun.DC.Models; using Bailun.DC.Models;
using System.Threading;
using Microsoft.Extensions.Hosting;
using System.Threading.Tasks;
namespace Bailun.DC.BalanceSheet4K namespace Bailun.DC.BalanceSheet4K
{ {
public class Services public class Services : BackgroundService
{ {
private Timer _timer;
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
_timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromMinutes(1));
return Task.CompletedTask;
}
private void DoWork(object state)
{
try
{
var now = DateTime.Now;
if (now.Day == 1 && now.Hour == 0 && now.Minute == 1) //每个月的1日0点1分启动
{
Console.WriteLine("开始启动 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
var start = DateTime.Parse(now.AddMonths(-1).ToShortDateString());
Init(start);
Console.WriteLine("任务运行完成 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
/// <summary> /// <summary>
/// 每月的第一天 /// 每月的第一天
/// </summary> /// </summary>
......
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