Если это действительно FTP-соединение, которое не может быть завершено в течение тайм-аута транзакции, другой подход будет заключаться в том, чтобы превратить это в Saga.
Saga будет запущена FtpMessage, а в обработчике она будетзапускать работу FTP асинхронно, либо в другом потоке, либо через другой процесс, или что-то еще, и хранить достаточно данных в данных саги, чтобы иметь возможность посмотреть прогресс позже.
Затем он запросит тайм-аут отTimeoutManager на сколько долго имеет смысл.После получения этого таймаута он будет искать состояние в данных саги и проверять текущую работу FTP.Если она завершена, пометьте сагу как завершенную, если нет, запросите другой тайм-аут.
В качестве альтернативы вы могли бы иметь процесс, оборачивающий соединение FTP, которое содержит собственную шину, но не имеет собственных обработчиков сообщений.Он может получить свою информацию FTP через командную строку (включая запрашивающую конечную точку), выполнить свою работу, а затем отправить сообщение обратно запрашивающей конечной точке, сообщив, что оно завершено.Тогда вам не придется ждать тайм-аута, чтобы продолжить процесс.