2017-06-15 5 views
0

処理するタスクが5つあるとします。ログインが行われない場合、最初のタスクはログインを行う責任があります。すでにログインが完了している場合、後のタスクはログインを再利用する必要があります。ログインが一度だけ確実に行われるようにする

  • V1が上記のロジックを実行するためのものである:

    I 3 verticlesを有します。ログインがまだ行われている場合

  • V2は、データベースでチェックするためである
  • V3は、T1がV2によって確認されている間、3 verticlesは、非同期であるので、T2が取得する

Webサービス経由でログインを行うために責任がありますV1によって処理されます(V1は現在フリーです)。 私はT1とT2の両方をウェブサービスにログインさせることになります。

T1がV2とV3で処理されている間にT2が待機することを保証する方法はありますか?

+0

これを行うにはなぜ3つの頂点が必要なのかはわかりません。おそらくいくつかのコードを共有することは、あなたの問題を理解するのに役立ちます。 – tsegismont

答えて

0

私たちは最終的に取引でRedisを使用します。スレッドの群れが同時に入ってくると、トランザクションは1つだけが更新を行うことを許可します。勝者はWebサービスコールを行うことが許可されます。

関連する問題