54 lines
1.6 KiB
C#
54 lines
1.6 KiB
C#
using Elastic.CommonSchema.Serilog;
|
|
using PARR.Core;
|
|
using PARR.DAL;
|
|
using PARR.Domain.Enums;
|
|
using PARR.Infrastructure;
|
|
using PARR.WorkloadBuilderWorker;
|
|
using PARR.WorkloadBuilderWorker.Settings;
|
|
using Serilog;
|
|
|
|
var builder = Host.CreateApplicationBuilder();
|
|
|
|
builder.Services.AddLogging(config =>
|
|
{
|
|
config.ClearProviders();
|
|
|
|
var logger = new LoggerConfiguration();
|
|
|
|
if (builder.Environment.IsProduction())
|
|
logger.WriteTo.Console(new EcsTextFormatter());
|
|
else
|
|
logger.WriteTo.Console();
|
|
|
|
logger.ReadFrom.Configuration(builder.Configuration);
|
|
|
|
config.AddSerilog(logger.CreateLogger());
|
|
});
|
|
|
|
var workerSettings = new WorkerSettings();
|
|
builder.Configuration.GetSection(nameof(WorkerSettings)).Bind(workerSettings);
|
|
builder.Services.AddSingleton(workerSettings);
|
|
|
|
#region PARR modules
|
|
builder.Services.InstallDalServices(builder.Configuration);
|
|
builder.Services.AddCoreServices(builder.Configuration);
|
|
builder.Services.AddInfrastructureServices(builder.Configuration);
|
|
builder.Services.AddTaskManagement((provider, taskType) =>
|
|
{
|
|
// Тут обрабатываем только задачи типа Workload
|
|
if (taskType == TaskTypeEnum.Workload)
|
|
return workerSettings.MqSettings;
|
|
|
|
throw new ArgumentException($"Настройки для типа задания {taskType} не найдены в конфигурации.");
|
|
});
|
|
|
|
builder.Configuration.AddDalConfigurations(builder.Services);
|
|
builder.Services.AddDallSettings(builder.Configuration);
|
|
#endregion
|
|
|
|
|
|
builder.Services.AddHostedService<Worker>();
|
|
|
|
var host = builder.Build();
|
|
host.Run();
|