5

Amazon SQS を使用してタスク キューを実装しています (ただし、質問はどのタスク キューにも当てはまると思います)。ここで、ワーカーは、ジョブが既に再試行された回数に応じて異なるアクションを実行することが期待されます (に移動します)。別のキュー、可視性タイムアウトの増加、アラートの送信など)

失敗したジョブ数を追跡する最良の方法は何ですか? job:retry-count レコード用に一元化されたデータベースを保持する必要がないようにしたいと思います。監視プロセスではなく、キューで費やされた時間を確認する必要がありますか? せいぜい醜い、または汚れているIMOで、古いジョブが見つかるまでジョブを繰り返します..

ありがとう!アンドラス

4

4 に答える 4

6

私は SQS と SimpleDB を組み合わせることに成功しました。「一元化」されていますが、SQS と同程度です。

すべてのジョブは simpleDB でレコードを取得し、SQS でタスクを取得します。ジョブの作成時間など、好きな情報を SimpleDB に入れることができます。ワーカーがキューからジョブを取得すると、simpleDB から対応するレコードを取得して、その履歴を確認できます。ジョブの経過時間と、試行された回数を確認できます。完了したら、SimpleDB レコードにワーカー データ (完了時間、結果、ログ、エラー、スタック トレースなど) を追加し、SQS からのメッセージを確認できます。

失敗したタスクに関する多くのデバッグ情報を提供することで障害を診断するのに役立つため、私はこの方法を好みます。また、ジョブがキューに入れられている時間の長さ、失敗の回数などに応じて、ワーカーがジョブを異なる方法で処理することもできます。

また、SimpleDB に直接クエリを実行して、タスクあたりの平均時間、失敗率などを計算することもできます。

于 2011-07-07T19:04:25.427 に答える
1

Amazon は、GAE タスク キューのより洗練された柔軟なバージョンと考えることができるシンプルなワークフロー サービス (swf) をリリースしました。

タスクを (ハートビートで) 監視し、再試行戦略を構成し、複雑なワークフローを作成できます。タスクの依存関係、スケジューリング、およびタスクの耐障害性(特に非同期のもの)を抽象化することは、かなり有望に見えます

概要については、 http://docs.amazonwebservices.com/amazonswf/latest/developerguide/swf-dg-intro-to-swf.htmlをご覧ください。

于 2012-02-24T00:36:36.423 に答える
0

SQS は「Simple Queue Service」の略で、概念的にはそのサービスの名前が正しくありません。「キュー」の最も重要な機能は FIFO (先入れ先出し) であり、SQS にはそれがありません。明確にしたいだけです。

また、Azure Queue Services にもそれがありません。最高のクラウド キュー サービスを得るには、真のキューの概念であるため、Azure のサービス バスを使用してください。

于 2015-02-02T20:03:03.603 に答える