Я впервые столкнулся с такой проблемой. Я запускаю приложение в контейнере с некоторыми размещенными сервисами (As pNet, Core C# 8.0, Docker container Linux). Первый сервис делает большой прием данных в моей базе данных. Я объясню сервис: он просто запускается, загружается из Интернета и загружает файл 2 ГБ с большим количеством JSON внутри. Затем он добавляет один за другим каждый JSON файл, десериализованный в моей базе данных. Он начинается довольно хорошо, но после 500 000 записей начинает замедляться и не прекращает прием данных. Если я запускаю
docker logs -f <container>
, я получаю это сообщение:
Со статистикой docker я вижу свой контейнер, используя все ресурс возможен. Большое спасибо за любую помощь!
Это HS:
private void DoWork(object state)
{
using (IServiceScope scope = _services.CreateScope())
{
executionCount++;
IVUManager _vuManager = scope.ServiceProvider.GetRequiredService<IVUManager>();
_vuManager.BulkLoaderVuMassive();
}
}
Это часть кода, управляющая файлом JSON:
foreach (string filename in filesnumber)
{
using (StreamReader r = new StreamReader(filename))
{
//Parsin JSON
aInt++;
string jsonFull = r.ReadToEnd();
JsonDocument jsonDoc = JsonDocument.Parse(jsonFull);
JsonElement jsonParsed = jsonDoc.RootElement;
ASoVu newVU = new ASoVu();
newVU = _importStrategy.VU();
_repository.MassiveImportNVD(_context, newVUL)
if (aInt == 9999)
{
_repository.Save(_context);
}
}
}
Это часть кода, которая делает вставку внутри базы данных:
publi c class VURepository: IVURepository {private readonly ILogger _logger;
public VURepository(ILogger<VURepository> logger)
{
_logger = logger;
}
public void MassiveImport(VMContext _context, ASoVu newVU)
{
_context.Vu.Add(newVU);
}