タグ

queueに関するnobu666のブックマーク (3)

  • 開発メモ: KVSとシグナル機構でジョブキューを実現する

    いわゆるkey-value storeを使っている際に、レコードの挿入もしくは更新を検知して即座に何らかの処理を行いたくなることはないだろうか。俺はあんまりないけど、結構そういう質問が来るので、きっと巷にはそういう要求があるのだろう。Kyoto Cabinetでそれを実現してみた。 ジョブキュー もうちょい具体的な例を挙げると、ジョブキューである。ここで、「foo」という名前のタスクを考えてみる。読み出し側(ワーカ)は、適当な名前をつけた条件変数を常に監視していて、そこにシグナルが飛んできたら即座にレコードを取得して処理を行いたい。しかし、「一定の間隔毎にレコードの検索を繰返して発見したら処理を行う」というポーリングスタイルにはしたくない。操作にどうしてもタイムラグが出るし、ポーリングのための無駄なトラフィックが発生するからだ。 シグナル待機処理と該当レコードの取得処理を行う擬似コードは以

  • MySQueue

    またか!って感じなんですが、MySQL前提で動作するJobQueueをかるく実装してみました。 https://github.com/nekokak/MySQueue よくあるJobQueueは1つのjobをdequeueして処理しますが、 今回作ったMySQueueは自分の指定したボリュームのjobをまとめて取得して処理する感じです。 workerをタンマリ用意してマシンガンのようにバシバシjobを処理するというよりも 大砲のようにどかーんどかーんとjobを処理する感じです。 なのであんまり並列性はいらないかんじ。(当然ある程度はいるけど) わかりやすい説明ですね。 Schema: CREATE TABLE job ( id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, arg MEDIUMBLOB, status VARCHAR(10) DE

  • 非同期ジョブキューのアーキテクチャ設計、どうしてますか? - @kyanny's blog

    Gearman のメーリングリストに興味深いポストがあった。僕も色々な意見を聞いてみたいと思ったので、多くの人の目に触れることを期待して紹介する。 Google グループ ウェブサイトに画像をアップロードすると、異なるバックエンドサーバが画像を処理する。まずリサイズし、それから顔認識をする。 一つ目の要求として、処理結果が期待通りかどうかユーザーに確認させたい。顔認識が不要であればリサイズした画像を、顔認識が必要ならばその処理が施された画像を、確認画面に表示したい。つまり、アップロード操作の完了には一つまたは二つのステップを踏む必要がある。 この要求を満たすために同期処理も検討したが、バックエンドサーバがダウンするとウェブアプリケーションサーバも巻き添えをうため採用したくない。 ウェブアプリケーションのプロセスは Gearman にリサイズ処理を非同期ジョブとして送信し、リサイズ処理のワ

    非同期ジョブキューのアーキテクチャ設計、どうしてますか? - @kyanny's blog
  • 1