2017-08-12 10 views
0

複数のクライアントがキューに書き込むアプリケーションで作業していて、複数のワーカーがキューからジョブを処理しています。問題は、場合によっては、ジョブが互いに依存していることです。 「従属」とは、彼らが順番に処理される必要があるということです。キュー:従属ジョブを処理する方法

これは一般的に、エンティティがユーザーによって作成された後すぐに削除された場合に発生します。明らかに、削除の前に最初の仕事(すなわち、創作)を行うことを望みます。問題は、作成に削除よりも時間がかかることがあるため、削除作業が始まる前に作成が完了するとは保証できません。

私は、このタイプの問題は非同期処理と合理的に共通していると思います。それに対処するための戦略はありますか?私はキューに優先度を割り当てて処理順序を制御できることを知っていますが、この場合は十分ではありません。私は具体的な保証が必要です。

答えて

1

これはお使いのモデルには合わないかもしれませんが、私が使用しているモデルでは、作成機能が完了するまで削除機能を提供していません。

Create_XXXコマンドが完了すると、XXX_Createdイベントが発生し、キューに入れられます。このイベントを処理して、削除機能を有効にして、新しく作成したアイテムを削除することができます。

コマンドが完了し、次に処理され、別のコマンドを作成するイベントを発生させるプロセスは、コマンドが望ましい順序で処理されることを保証する一般的な方法です。

関連する問題