Нет ответа от Talend job - PullRequest
       44

Нет ответа от Talend job

0 голосов
/ 13 февраля 2019

Я проектирую работу в Talend Open Studio для ESB.Моя цель - создать работу по обработке файлов с данными.Это задание используется для веб-службы, которая развернута на сервере.Этот веб-сервис является типом SOAP и состоит из следующих компонентов:

  • tESBProviderRequest,
  • tESBProviderResponse,
  • процессное задание.

Все работает отлично, до обработки файлов с большим объемом данных.Это занимает некоторое время, и, в конце концов, оно выдает исключение времени выполнения с сообщением: « нет ответа от задания Talend »

И, кстати.все остальное отлично работает в работе - обработка всего файла.Но в конце концов это исключение.

Я вижу код, сгенерированный на Java (к сожалению, не могу его отредактировать).И я нашел этот фрагмент кода:

/**
 * message exchange controller
 */
public class QueuedMessageHandlerImpl<IN, OUT> implements
        ESBProviderCallback {
    private final int MAX_QUEUE_SIZE = 1000;

    private final int WAIT_TIMEOUT_SECONDS = 120;

    private final java.util.concurrent.BlockingQueue<QueuedExchangeContextImpl<IN, OUT>> queue = new java.util.concurrent.LinkedBlockingQueue<QueuedExchangeContextImpl<IN, OUT>>(
            MAX_QUEUE_SIZE);

Что, очевидно, говорит, что у меня есть только 120 секунд для обработки.Как я могу это изменить?Есть ли обходной путь?

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Возможно, вы захотите переосмыслить свой дизайн - использование синхронной (блокирующей) веб-службы для обработки файла, а также ожидание завершения клиентом проблем с увеличением времени обработки, как вы уже видели.

Задумывались ли вы о реализации асинхронного проектирования?В этом случае клиент отправляет запрос в веб-службу, единственная задача которой - принимать запросы и помещать эти запросы в очередь сообщений, освобождая, таким образом, клиента для выполнения других задач.По крайней мере, вы отделяете запрос от обработки и избегаете тайм-аутов, когда файл большой.Обратите внимание, что HTTP на некотором уровне также имеет встроенный тайм-аут сеанса, поэтому лучше всего избегать этой проблемы, используя другой дизайн.

И последнее, я настоятельно рекомендую вам попытаться уйти с работыиспользование при использовании Talend ESB - вы должны действительно проверить маршруты, которые используются для генерации кода Apache Camel.Они гораздо более эффективны, чем задания для вашего варианта использования, и могут быть объединены с ActiveMQ (который входит в комплект Studio).

Talend ESB Studio поставляется с некоторыми демонстрационными примерами, которые можно импортировать и извлекать, и я 'очень рекомендую начать там.

0 голосов
/ 14 февраля 2019

Кажется, что это не сделано, и это не может быть сделано любой конфигурацией.Я использую Talend ESB версии 6.5.1.После перехода на версию 7.0.1 этот запрос tESBProviderRequest получил опции в разделе Advanced: https://help.talend.com/reader/6pO1HSkFat02LpDF_xCmsg/XXo1~pvJC7rmkmJ0J_E0fg

Так что я установил новые значения для времени, и это сработало.

...