Детали задачи
-
История
-
Решение: Готово
-
Urgent
-
Не заполнено
-
Не заполнено
Описание
Сейчас есть проблема с выгрузкой большого кол-ва элементов в файл т.к. в процессе ожидания ответа клиент отключается по таймауту.
Необходимо разработать механизм для того чтобы клиент не держал один запрос активным в процессе ожидания, а периодически опрашивал сервер на наличие результатов по выгрузке и за степенью прогресса.
- С вариантом отложенного уведомления - на email присылать ссылку на файл (результат выгрузки).
- Есть вариант - убрать ограничение по таймауту. Т.е. пользователь будет видеть тот же лоадер, но сможет ждать без ограничений (в перспективе еще и прогресс бар можно нарисовать).
От заказчика получили ответ, что первый вариант ему подходит больше:
Адрес электронный почты пользователя, запустившего выгрузку можно найти в его профиле на закладке “Контакты”, значение атрибута “Электронная почта”:
Добавить поддержку конфигурации групповых действий для отправки результата выгрузки на email пользователя, который инициировал выгрузку.
Чтение конфигурации в ru.citeck.ecos.action.group.AbstractExportActionFactory.createAction
Сейчас там принудительно проставляется, что действие асинхронное localConfig.setAsync(false);
Это следует изменить посмотрев на output.type. Если он равен email, то должно быть setAsync(true); и мы должны получить email пользователя. Если email не удается, получить, то делаем throw new RuntimeException до начала выгрузки.
В методе ru.citeck.ecos.action.group.AbstractExportActionFactory.ExportAction.onComplete в случае если output->type == email нужно отправить инициатору действия email с ссылкой на результат выгрузки.
Отправка email’а должна быть с использованием микросервиса нотификаций (сервис ru.citeck.ecos.notifications.lib.service.NotificationService)
Вложенные файлы
Вложенные файлы
Связи запроса
- relates to
-
ECOSCOM-4695 Improvements in unloading log lines
-
- New
-
-
ECOSCOM-4826 An empty file comes in xlsx/csv export journal
-
- Готово
-
- mentioned on