2016-11-30 8 views
0

問題:複数のアプリケーションインスタンスが実行されているときに、アプリケーションからタイマーを作成するとタイマーが重複してしまいます。複数のインスタンスが実行されているときのタイマー(クラウドなど)

問題領域:クラウドにタイマーを作成します。

クラウドのタイマーとして赤を使用できますか?たとえば、レコードをredisに書き込み、ttl(存続可能時間)を設定します。 TTLに達すると、通知メッセージを受信するためにメッセージングシステムを使用することができます(それによって、タスクが実行されます)。

問題は赤字ですが、購読の仕組みだけを公開しているようです。つまり、すべてのアプリインスタンスが通知を受け取り、タスクを複製します。

提案がありますか?

+0

最初に何かを試してから質問をしてください – Sachith

答えて

0

少し前に同じ問題がありました。さまざまな戦略があります。

  • クラウドプロバイダにはすでに解決策がある場合があります。
  • 何らかの制御データベースを作成します。また、タイマーが特定のインスタンスまたはテナントに対してすでに実行されているかどうかに関係なく、このdbを使用してロック/チェックします。
  • メッセージをメッセージングシステムに送信し、重複が削除されていることを確認します。
  • 軽量コンテナ内でタイマー処理を実行します。ある種のマイクロサービス。
  • これらを達成するために第三者を使用してください。
  • など

すべてのソリューションは、独自の長所と短所を持っています。

+0

ありがとうtanzwud、しかしあなたのシナリオでどうやって解決しましたか? –

+0

私は詳細に深く入ることができません。クラウドプロバイダーとしてのMicrosoft Azureは、私たちのためのソリューションを持っています。私たちはそれを使用しました。 – Tanzwud

関連する問題