504 тайм-аут шлюза в браузере при извлечении данных из базы данных оракула - PullRequest
0 голосов
/ 18 октября 2018

заголовок вопросов говорит обо всем.это происходит в облачной среде литейного производства.структура приложения выглядит следующим образом: есть две базы данных, одна из которых - Mysql, а другая - Oracle. Оба настроены и источники данных созданы правильно.

Конечная цель - извлечь данные, представленные в базе данных Oracle, в базу данных MySQL.используя приложение Springboot (ETL).Выполнение запроса на выборку в oracle DB занимает около 30 минут, поскольку к таблицам применяются объединения, в которых после выполнения запроса на выборку будет выбрано около 10000 записей.

работает очень хорошо, когда я запускаю то же самое в локальной среде в Eclipse IDE.но проблема возникает в облачной среде.

Когда я запускаю ссылку на остальные в браузере в облачной среде.Он работает от 10 до 15 минут и выдает 504 httpstatus, и я заметил, что в фоновом режиме данные выбираются в приложении.Я вижу это в журналах, которые хранятся.но в браузере он выдает исключение.

Я хотел бы показать мой код, если он мой, но на самом деле это работа компании, поэтому я не могу его показать ..

Может кто-нибудь, пожалуйста, помогите мнес этой ошибкой 504?

1 Ответ

0 голосов
/ 18 октября 2018

На основании ограниченной информации, которой вы поделились, похоже, что вы вызываете REST API для запуска задания ETL, которое передает данные из одной базы данных в другую, что является трудоемким / длительным заданием.По моему мнению, это хороший кандидат на асинхронную операцию вместо синхронной.Имея столько деталей, сколько вы предоставили, я бы посоветовал вашему REST API запустить новый поток, который выполняет задание ETL в фоновом режиме, и немедленно вернуть успех в ответе, если поток успешно запущен.После этого вы можете выполнить еще одну операцию в вашем пользовательском интерфейсе, которая будет показывать состояние задания ETL, которое необходимо будет поддерживать где-то в базе данных и получать оттуда с помощью службы и отображать в пользовательском интерфейсе.

ПРИМЕЧАНИЕ:Тайм-аут шлюза неизбежен для таких длительных операций, если они выполняются синхронно, если только вы не увеличите тайм-аут соответствующей службы, что я бы не советовал делать.

...