【参考としてAWS SDK for Ruby V2を利用する場合は、こちらを参考にしてください。】 最近メタボリック症候群になりました。現実を受け止め、筋肉SEを目指してトレーニング中の、どうも千葉です。 今日はSQSについてのハンズオンです。 SQSとは、メッセージキューを提供するサービスで、バッチ等非同期処理時が実施可能になります。 今日はAmazon SQSを使って、キューの登録・取得・削除等をやってみたいと思います。 言語は、最近rubyを使っているので、「AWS SDK for Ruby」を使用します。 おそらく、Java・PHP・Python等でもAWSのSDKがあるため、同じような感じで実行できるのではないかと思います。 料金 お金取られない範囲でやりたい方も多いはずなので、一応記載しておくと無料のはずです。 ユーザ登録後の無料期間にかかわらず(無料期間以外でも)2014年1
MySQLのロック機能を使って楽に cronジョブの多重実行回避をしようという話 たかがロック、されどロック システムで非同期にキューの処理などを行う場合、cronを使って短い間隔でバッチジョブを起動してキューを処理するという方法がよく取られるが、キューの混み具合によってはバッチジョブにかかる時間が長くなってしまうため、前に実行されたジョブがまだ走っているかどうかチェックして、もし走っている場合は処理を実行せずにそのまま終了するといった制御が必要になる。 たまにこの制御をしていないバッチジョブが溜まりに溜まってシステムをハングさせているのを見かける。 適当な空のファイルを作成してこれを flockするとか、システムコールレベルでアトミックに作成できることになっているオブジェクト(シンボリックリンクなど)を駆使してロックの代わりにするとかといったテクニックが典型的に利用されるが、これらを真面
SQSの大型アップデートです! オンプレでエンタープライズな開発を行ったことがある方であれば、分散キューシステムの設計が大変だったと思います。実際のところは高額ライセンス商品を買うしか選択肢はなかったのではと。Amazon SQSの登場によって、今まで実装が大変だったノンコア機能のキューが、超安価に簡単に使えるようになったのは衝撃でした。これだけでクラウドを使う理由になりました。 そして、年月は流れ、この度SQSが進化しました!まずは、今までのSQSの課題についておさらいしたいと思います。 標準キュー 今までのSQSは、メディアエンコーディングや大量タスクの分散処理などに適していましたが、いくつかの用途においてフィットしなかったり、独自実装をする必要がありました。 順番が保証されない SQSは高可用性を持った分散キューシステムですので、1つのエンドポイントに投げられたメッセージは複製され蓄
さきほどのコマンドを実行した結果が下記になります。 4行=4件の該当するメールが見つかったことになります。 多くの場合、条件に合致するメールが複数件抽出されます。 残念ながら、この状態では各メールの処理の詳細までは知ることができません。 ここからさらにキューIDごとに絞込検索をかけ、各メールの処理詳細を追跡することになります。 エラーが発生したおおよその時間帯がわかっていれば、どのキューIDを追跡したらよいかあたりをつけることができます。それでない場合は、すべてのキューIDを調べていく必要があります。 ※「831F78322B9」「73B928322E9」「A32198322F3」「EBD65832B18」がキューIDに該当します。 # Apr 18 15:42:37 server postfix/qmgr[1513]: 831F78322B9: from=<XXXXXX@yahoo.co
[caption id="" align="alignleft" width="256"] Postfixのぺーじ[/caption] postfix にてキューにたまったメールの削除方法 ローカル環境とかでテストしていて、送信できないメールのキューがたまっていた。 そこでキューを消そうと思ったんだけどコマンドが思い出せなかったので、調べた結果をメモしました。 まずはキューの確認 $ mailq -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- 0E8DF6064 882 Mon Jun 30 16:42:39 xxxx@xxxxxx (connect to xxxx.xxxx.com[xxx.xxx.xxxx.xxx]: Connection refused) xxxxxx@xxxx.xxxx.com --
メールが停滞している、なんか様子が変、って時はMTAに関らず/var/log/maillogの確認。(追記:Postfixだったら # postqueue -p の方が話が早いかも) その中でbonce、deferredなどのステータスに注目。これらは配送されていないメールのステータスとなる。 status=sent 配送OK status=bounce 配送NG status=deferred 一時的に配送できなかったがリトライ deferredステータスのメールはキューの保持期間において配送をリトライし続けるが、内部に配送不可能な原因がある場合は当然何度やっても送信されない。 /var/spool/postfix/deferred/ディレクトリ配下を見てみると、数字やアルファベット大文字一文字のディレクトリがある。この名ディレクトリ内にdeferredメールが格納されている。(キューI
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く