/
ivanstrike
/
tasker
Обзор
Документация
Войти
/
ivanstrike
/
tasker
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Lab4/Server/Program.cs
58 строк
2 KB
ivanstrike
laba4
21 дек 2025, 21:13
21 дек 2025, 21:13
e9bb9a2
Код
Авторство
О чём код?
using Microsoft.EntityFrameworkCore; using TaskerMQ.Server.Configuration; using TaskerMQ.Server.Data; using TaskerMQ.Server.Services; var builder = WebApplication.CreateBuilder(args); // Configuration var rabbitMQSettings = new RabbitMQSettings(); builder.Configuration.GetSection("RabbitMQ").Bind(rabbitMQSettings); var authSettings = new AuthenticationSettings(); builder.Configuration.GetSection("Authentication").Bind(authSettings); var idempotencySettings = new IdempotencySettings(); builder.Configuration.GetSection("Idempotency").Bind(idempotencySettings); // Database builder.Services.AddDbContext<ApplicationDbContext>(options => { options.UseNpgsql(builder.Configuration.GetConnectionString("DefaultConnection")); options.ConfigureWarnings(w => w.Ignore(Microsoft.EntityFrameworkCore.Diagnostics.RelationalEventId.PendingModelChangesWarning)); }); // Services builder.Services.AddSingleton(rabbitMQSettings); builder.Services.AddSingleton(authSettings); builder.Services.AddSingleton(idempotencySettings); builder.Services.AddSingleton<RabbitMQConnectionFactory>(); builder.Services.AddScoped<AuthenticationService>(); builder.Services.AddScoped<IdempotencyService>(); builder.Services.AddHostedService<MessageProcessingService>(); // Health checks builder.Services.AddHealthChecks() .AddDbContextCheck<ApplicationDbContext>(); var app = builder.Build(); // Auto-create database on startup using (var scope = app.Services.CreateScope()) { var db = scope.ServiceProvider.GetRequiredService<ApplicationDbContext>(); await db.Database.EnsureCreatedAsync(); } app.MapHealthChecks("/health"); app.MapGet("/", () => new { service = "TaskerMQ Server", version = "1.0.0", status = "running", timestamp = DateTime.UtcNow, role = "Message Queue Processor" }); app.Run();