У нас есть большой объем данных для вставки в базу данных областей. Данные поступают от нескольких веб-сервисов на общую сумму от 100 МБ до 1 ГБ .
Нам нужно хранить каждый результат из сети с транзакцией . Если все веб-сервисы успешно загружены , после пост-обработки мы фиксируем базу данных .
В связи с тем, что область для этой транзакции требует работы в том же потоке и что веб-служба работает асинхронно , проблема, с которой мы сталкиваемся, заключается в том, что мы не можем вызывать одно и то же поток после результата веб-службы, как мы можем справиться с этой ситуацией?
Примечание:
Мы не можем загрузить все данные в память -> огромное количество данных подвергает риску исключение памяти
Хранение результата ответа веб-службы в файлах и загрузка файла за файлом не очень эффективны -> мы сделали это, но производительность плохая (мы тратим 30% на обработку управления декодированием файла…)