docker isolation update

This commit is contained in:
prixod
2025-11-04 20:22:51 +04:00
parent cb346db783
commit 48c2b4dafd
11 changed files with 1215 additions and 13 deletions

View File

@@ -1,4 +1,5 @@
using LiquidCode.Tester.Worker.Services;
using LiquidCode.Tester.Worker.Services.Isolate;
var builder = WebApplication.CreateBuilder(args);
@@ -9,6 +10,15 @@ builder.Services.AddOpenApi();
// Add HttpClient
builder.Services.AddHttpClient();
// Register Isolate services
builder.Services.AddSingleton<IsolateService>();
builder.Services.AddSingleton(sp =>
{
var logger = sp.GetRequiredService<ILogger<IsolateBoxPool>>();
var maxBoxes = builder.Configuration.GetValue<int>("Isolate:MaxBoxes", 100);
return new IsolateBoxPool(maxBoxes, logger);
});
// Register application services
builder.Services.AddSingleton<PolygonProblemXmlParser>();
builder.Services.AddSingleton<AnswerGenerationService>();
@@ -26,7 +36,10 @@ builder.Services.AddSingleton<PythonCompilationService>();
builder.Services.AddSingleton<ICompilationServiceFactory, CompilationServiceFactory>();
// Register execution services
// Always register both standard and isolate versions
builder.Services.AddSingleton<CppExecutionService>();
builder.Services.AddSingleton<CppExecutionServiceIsolate>();
builder.Services.AddSingleton<JavaExecutionService>();
builder.Services.AddSingleton<KotlinExecutionService>();
builder.Services.AddSingleton<CSharpExecutionService>();