2017-08-08 9 views
0

アクティビティを使用すると、並列タスクを設計することは可能ですが、これらのタスクは内部的に(同じスレッドによって)順番に実行されます。Activitiを使用して分割されたスレッドで処理する

私はタスクを非同期的に実行する必要があり、タスクが完了するとタスクに「参加」する必要があります。

プロセスは、次のとおりです。

preparation -> execute task 1 
      -> execute task 2 at the same time 
     -> Then once both are finished, go one 

タスク1と2は、Webサービスの呼び出しであり、多くの時間を必要とするかもしれないので、それは、最適化の問題です。

私が読んだすべてから、これはactivitiでは不可能です。非同期タスクを使用すると、正しく結合することはできません(両方が完了したことを検出する)。最初の終了したタスクはOKですが、2番目のタスクはOptimisticLockExceptionをスローし、再開されます(これは受け入れられません)。

多分私は誤解されている何かがあり、これは可能なまたは簡単なものですか?誰もそれに成功しましたか?

答えて

0

私はあなたの質問をはっきりと理解しているかわかりません。 Activitiは非同期処理をサポートしています。

2つの非同期プロセスを結合すると、両方の非同期タスクが完了するまで待機する別のタスクを作成できます。

+0

これはまさに私の質問です。 2つの非同期タスクを並列ゲートウェイに入れようとしましたが、楽観的なロック例外には失敗します。ドキュメンテーションでは、「勝利」を完了する最初のタスクと他のタスクがaushc例外で失敗することが説明されています。あなたの説明によれば、尋ねる仕事にどのような種類の仕事を使うべきですか? – Rolintocour

関連する問題