2016-06-17 9 views
0

私はすでにスレッドを使用して実行中のbpmnプロセスを使用していますが、タスクスケジューラスレッドが実行されている場所でspring ftpを使用していますが、アプリケーションがスレッドから切り替えることができません。割り込みなしでタスクスケジューラプロセスを呼び出す方法はありますか?InboundchannelAdapterを使用してFTPからファイルをコピーしています。問題を解決するための方法を提案してください。Spring統合ftpスレッドプロセス

答えて

0

質問には何の問題もありません。正直言って、それは完全にはっきりしていません。

いくつかのコード/ config/logs/stack-traceを共有してください。本当に便利です。より多くの情報、迅速かつ適切な答えを得るためのより多くのチャンス。

FTPからファイルをダウンロードし、同じスレッドでBPMプロセスを実行すると、最終的にいくつかのアクターのアクションを待つことができないという問題があると思います。

この目的のために、<poller>のSpring Integrationフローを別のスレッドに移行し、タスクスケジューラリソースを盗まないようにする必要があります。彼らは本当にシステム全体にとって非常に高価です。 <poller>task-executorの参照には、十分な大きさのThreadPoolTaskExecutorを使用することを検討してください。同様のスレッドシフト機能を持つExecutorChannelもあります。

+0

ありがとうございましたArtem、しかし今のところFTPからのスレッド(Task-scheduler)がFTPからファイルをコピーした後に正しく実行されていて、BPMプロセスを呼び出す問題があります。 bpmプロセスは継続的に実行されており、[http-nio-8082-exec-3]スレッドを使用しており、ftp(1-10スレッド)と同様の範囲です。FTPプロセスがこの[task-scheduler-3]を使用しています( 1-10)、ある時点からFTPプロセスがBPMプロセスの段階をスキップした後、第1段階から開始するのではなく、第3段階に進むことがあります。私は本当にthis.pleaseアドバイスを心配している、タスクスケジューラのスレッドプロセスがスキップするのを避ける方法はありますか? – user3428736

+0

まあ、それはちょっと意味がありません、あなたはそこであなたのロジックを修正する必要があります。間違った支店につながる競争状態があるかもしれません。一方、 'http-nio-8082-exec-3'は、Webからのユーザーリクエストに関連していると言います。一方、ポーラーのプロセス(FTP Inbound Channel Adapter)は独立しており、永遠に働きます。これは、ファイルがFTPからローカルに出現したときにBPM処理を行わない方法です。 –

+0

これは何度か起きていて、bpmnプロセスを処理するためにタスクスケジュール型スレッドタスクを処理しています。さらに、bpmnプロセスの問題は、bpmnのロジックがstartProcessInstanceByKeyを使用してプロセスを開始する直接呼び出しで、プロセスが自動的に起動し、そこには未確認のトレースがあるbpmnコードを制御できます。私はそれがタスクスケジューラのためではないと思います。あなたがこれについて何か考えている場合は、共有してください..ありがとうArtem !! – user3428736