(Multi)Producer-Queue-Cosumer Designパターンをよく使用しましたが、操作の結果をどのように取得するかがわかりません。
私は3つのプロデューサーP1、P2、P3を持っており、メッセージIMessageを生成します。このメッセージは同期されたキューで送信され、Cosumerから作成されます。
コンシューマーCは、リクエストが終了したことをプロデューサー(P1またはP2またはP3)にどのように伝え、結果を提供できますか?
(Multi)Producer-Queue-Cosumer Designパターンをよく使用しましたが、操作の結果をどのように取得するかがわかりません。
私は3つのプロデューサーP1、P2、P3を持っており、メッセージIMessageを生成します。このメッセージは同期されたキューで送信され、Cosumerから作成されます。
コンシューマーCは、リクエストが終了したことをプロデューサー(P1またはP2またはP3)にどのように伝え、結果を提供できますか?
非同期の方法の 1 つは、完了後にコンシューマーがメッセージをプロデューサーにキューに戻すことです。メッセージには、結果メンバー (および/またはメッセージ処理中に発生した可能性のある例外オブジェクトまたはエラー メッセージ) を含めることができます。もう 1 つの可能性は、メッセージと共にキューに入れられた sychro オブジェクトをプロデューサーが単純に待機することです。コンシューマーは、完了時にそれを通知します。これらのスキームは両方とも、コンシューマーがメッセージを処理したときに呼び出す「OnCompletion(Message *thisMessage)」関数/イベント/デリゲートを使用してメッセージをロードするプロデューサーによってサポートされます。