2016-06-17 2 views
0

Я использую процесс bpmn, который уже работает с использованием потока, а также использует Spring ftp, где работает поток планировщика задач, но я обнаружил, что приложение не может переключиться с потоков. Есть ли способ вызвать процесс планировщика задач без прерывания, и я использую InboundchannelAdapter для копирования файлов с FTP. Просьба предложить любой возможный способ решения проблемы.Spring Integration ftp Thread process

ответ

0

Я не вижу никаких проблем в вашем вопросе. И, честно говоря, это не совсем понятно.

Пожалуйста, будьте более конкретными и обменивайтесь некоторыми кодами/config/logs/stack-trace когда-нибудь, действительно полезно. Больше информации, больше шансов получить быстрый и правильный ответ.

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

Для этой цели вы должны переключить поток интеграции Spring на <poller> в разные потоки и не украсть ресурсы планировщика задач. Они действительно настолько дороги для всей системы. Подумайте об использовании достаточно большого ThreadPoolTaskExecutor для ссылки task-executor на <poller>. Также есть ExecutorChannel для вас с аналогичными возможностями переключения потоков.

+0

Спасибо Artem. Но проблема в том, что на данный момент проблема Thread из FTP (Task-scheduler) работает правильно после копирования файлов из FTP на некоторое время и будет вызывать процесс BPM. Процесс bpm работает непрерывно, и он использует поток [http-nio-8082-exec-3] и имеет диапазоны как похожие на ftp (поток 1-10). Где FTP-процесс использует этот [task-scheduler-3] (1-10), после некоторого FTP-процесса, пропущенного на этапе BPM-процесса, когда-то, а не начиная с 1-го шага, он идет на 3-й шаг. Я действительно беспокоюсь об этом. Сообщите мне, есть ли способ избежать пропущения процесса потока планировщика задач. – user3428736

+0

Ну, это просто не имеет никакого смысла, и вы должны пересмотреть свою логику там. У вас может быть какое-то состояние гонки, которое приведет вас к неправильной ветке. С другой стороны, 'http-nio-8082-exec-3' говорит мне, что он относится к некоторому пользовательскому запросу из Интернета, между тем процесс poller (FTP Inbound Channel Adapter) является независимым и работает вечно. Вот как вы можете просто не иметь BPM-процесс, когда файлы появляются с FTP локально. –

+0

Это происходит несколько раз и работает с задачей задачи с расписанием задач для обработки процесса bpmn, и, кроме того, это проблема, похоже, проблема с процессом bpmn, где логика bpmn является прямым вызовом для запуска процесса с использованием startProcessInstanceByKey и я не знаю, t иметь какой-либо контроль над кодом bpmn, где процесс запустится автоматически, и там есть неопознанный след. Думаю, это не из-за планировщика задач. Если у вас есть какие-либо идеи по этому поводу, пожалуйста, поделитесь. Спасибо Артем! – user3428736

Смежные вопросы