Загрузить изображение для проекта: 'Citeck Community'
  1. Citeck Community
  2. ECOSCOM-4505

Develop export group actions without restriction by request timeout

    XMLWordДля печати

Детали задачи

    • Icon: История История
    • Решение: Готово
    • Icon: Urgent Urgent
    • Community Core 4.7.7
    • Не заполнено
    • Не заполнено

    Описание

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

      1. С вариантом отложенного уведомления - на email присылать ссылку на файл (результат выгрузки).
      2. Есть вариант - убрать ограничение по таймауту. Т.е. пользователь будет видеть тот же лоадер, но сможет ждать без ограничений (в перспективе еще и прогресс бар можно нарисовать).

      От заказчика получили ответ, что первый вариант ему подходит больше:

      Адрес электронный почты пользователя, запустившего выгрузку можно найти в его профиле на закладке “Контакты”, значение атрибута “Электронная почта”:


      Добавить поддержку конфигурации групповых действий для отправки результата выгрузки на 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)

      Вложенные файлы

        Активность

          Люди

            agutman Alexander Gutman [X]
            pavel.simonov@citeck.ru Pavel Simonov
            Голоса:
            0 Голосовать за эту задачу
            Наблюдатели:
            5 Начать наблюдение за этой задачей

            Даты

              Создано:
              Обновленo:
              Дата решения:

              Учет времени

                Оценка:
                Первоначальная оценка - 2 дни
                2d
                Осталось:
                Оставшееся время - 0 минуты
                0m
                Затрачено:
                Затраченное время - 1 день, 7 часы, 30 минуты Незатраченное время
                1d 7h 30m