feat(master): Подкготовка расписания
This commit is contained in:
7
PARR.Master/IMaster.cs
Normal file
7
PARR.Master/IMaster.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace PARR.Master
|
||||
{
|
||||
public interface IMaster
|
||||
{
|
||||
Task StartAsync();
|
||||
}
|
||||
}
|
||||
45
PARR.Master/Master.cs
Normal file
45
PARR.Master/Master.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using PARR.Master.Settings;
|
||||
|
||||
namespace PARR.Master
|
||||
{
|
||||
internal class Master : IMaster
|
||||
{
|
||||
private readonly WorkerSettings settings;
|
||||
private readonly ILogger<Master> logger;
|
||||
|
||||
public Master(
|
||||
WorkerSettings settings,
|
||||
ILogger<Master> logger
|
||||
)
|
||||
{
|
||||
this.settings = settings;
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
|
||||
public async Task StartAsync()
|
||||
{
|
||||
logger.LogInformation("Запуск сервиса.");
|
||||
|
||||
var nextStart = DateTime.Now;
|
||||
|
||||
while (true)
|
||||
{
|
||||
if (nextStart.Hour == DateTime.Now.Hour && nextStart.Minute == DateTime.Now.Minute)
|
||||
{
|
||||
logger.LogInformation("Запуск по расписанию.");
|
||||
|
||||
//todo:
|
||||
// await Tratata();
|
||||
|
||||
nextStart = DateTime.Now.Add(settings.RepeatEvery);
|
||||
logger.LogInformation($"Следующая дата запуска: {nextStart}");
|
||||
}
|
||||
|
||||
// Каждую минуту
|
||||
await Task.Delay(60 * 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,4 +11,8 @@
|
||||
<ProjectReference Include="..\PARR.DAL\PARR.DAL.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Services\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using PARR.BLL;
|
||||
using PARR.DAL;
|
||||
using PARR.Master.Settings;
|
||||
|
||||
namespace PARR.Master
|
||||
{
|
||||
@@ -12,14 +13,16 @@ namespace PARR.Master
|
||||
services.InstallBllServices(configuration);
|
||||
services.InstallDalServices(configuration);
|
||||
|
||||
// settings
|
||||
//SettingsFromDb configuration
|
||||
//var settingsFromDb = new SettingsFromDb();
|
||||
//configuration.GetSection(nameof(SettingsFromDb)).Bind(settingsFromDb);
|
||||
//services.AddSingleton(settingsFromDb);
|
||||
var settings = new WorkerSettings();
|
||||
configuration.GetSection(nameof(WorkerSettings)).Bind(settings);
|
||||
services.AddSingleton(settings);
|
||||
|
||||
var mqSettings = new MqSettings();
|
||||
configuration.GetSection(nameof(MqSettings)).Bind(mqSettings);
|
||||
services.AddSingleton(mqSettings);
|
||||
|
||||
//add other services
|
||||
//services.AddTransient<IEsppApiService, EsppApiService>();
|
||||
services.AddTransient<IMaster, Master>();
|
||||
}
|
||||
|
||||
public static IConfigurationBuilder AddMasterConfigurations(this IConfigurationBuilder builder, IServiceCollection services)
|
||||
|
||||
12
PARR.Master/Settings/MqSettings.cs
Normal file
12
PARR.Master/Settings/MqSettings.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using PARR.BLL.Contracts.Interfaces;
|
||||
|
||||
namespace PARR.Master.Settings
|
||||
{
|
||||
internal class MqSettings : IMqSettings
|
||||
{
|
||||
public string HostName { get; set; } = string.Empty;
|
||||
public string QueueName { get; set; } = string.Empty;
|
||||
public string User { get; set; } = string.Empty;
|
||||
public string Password { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
7
PARR.Master/Settings/WorkerSettings.cs
Normal file
7
PARR.Master/Settings/WorkerSettings.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace PARR.Master.Settings
|
||||
{
|
||||
internal class WorkerSettings
|
||||
{
|
||||
public TimeSpan RepeatEvery { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user