Устранение неполадок в службе приложений Azure: исключение нехватки памяти с огромными даннымиC#

Место общения программистов C#
Anonymous
Устранение неполадок в службе приложений Azure: исключение нехватки памяти с огромными данными

Сообщение Anonymous »

Пожалуйста, выскажите свое мнение о наиболее подходящем плане обслуживания приложений для приложения-функции.
Я выполняю веб-задание .net в службе приложений Azure в производственной среде. Это веб-задание считывает файл .json из BLOB-объекта Azure и сохраняет его в базе данных sql. Некоторые из моих файлов содержат данные размером до 2 ГБ.
У меня возникают исключения нехватки памяти в службе приложений Azure, однако на машине разработки все работает нормально.
Я хотел бы попробовать несколько вариантов со стороны Azure.
  • Преобразование веб-задания в функцию Azure, которая будет автоматически масштабироваться в соответствии с требованиями.
  • В настоящее время я использую Premium v2 P3V2. Ниже приведено изображение плана обслуживания приложения.
Изображение

Я уже провел некоторую оптимизацию кода, как показано ниже, но это не помогает
using (var zipBlobFileStream = new MemoryStream())
{
await blockBlob.DownloadToStreamAsync(zipBlobFileStream);
await zipBlobFileStream.FlushAsync();
zipBlobFileStream.Position = 0;

using (var zip = new ZipArchive(zipBlobFileStream))
{
var serializer = new JsonSerializer();

foreach (var entry in zip.Entries)
{
if (entry.Length == 0) continue; // Skip if entry has no content

using (var stream = entry.Open())
using (var streamReader = new StreamReader(stream))
using (var jsonReader = new JsonTextReader(streamReader))
{
// Move to the start of the array
while (jsonReader.Read() && jsonReader.TokenType != JsonToken.StartArray) ;

// Read each object in the array
while (jsonReader.Read() && jsonReader.TokenType != JsonToken.EndArray)
{
// Deserialize JSON object directly from the stream
var messageItem= serializer.Deserialize(jsonReader);

var DataItems = new DataItems
{
items = new List { DataItems }
};

result.Add(MessageItems);
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/780 ... -huge-data

Вернуться в «C#»