タグ

gearmanに関するKGAのブックマーク (9)

  • GearmanをPHPから使ってみた。 - 個人事業主のつぶやき

    今回は、PHPでGearmanを使えるようにして、ざっと動きを確認してみました。 Gearmanの設定はこっち ちなみに、よく知らんのだけど、Gearmanは(GearmanClient::doのように)即時実行で結果をclientに返す用途がメジャーなのかな? ほかのサイトだと、そういう風に紹介されてました。 GearmanCient::doBackgroundをつかうと、TheSchwartzみたい?に ジョブを突っ込むだけ突っ込んであとはお願いね〜ということができるので 今回はこっちを使います。 はい、まず Gearman PHP Extensionを入れます。 yum install php-devel wget http://pecl.php.net/get/gearman-0.7.0.tgz tar xzf gearman-0.7.0.tgz cd gearman-0.7.0

    GearmanをPHPから使ってみた。 - 個人事業主のつぶやき
    KGA
    KGA 2011/07/20
  • Gearman Administrative Protocol - すぎゃーんメモ

    Gearmanサーバがどんな状態なのかチェックしたりするのに、Telnettext-baseなプロトコルで操作ができる。 基的な使い方 まずはGearmanサーバの起動。 $ gearmand -d-dオプションはデーモン起動。デフォルトで7003番portを使うので、ここでtelnetlocalhost:7003に繋いでみる. Administrative Protocolでサポートされているコマンドは以下。 workers status maxqueue version shutdown $ telnet localhost 7003 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. workers 5 127.0.0.1 - : . status . version 1.11 shutdo

    Gearman Administrative Protocol - すぎゃーんメモ
    KGA
    KGA 2011/07/04
  • Test::TCPでgearman workerのテストを書く - Kentaro Kuribayashi's blog

    この項、必ず追記を参照のこと。 Gearmanを使ったジョブの処理を書いていて、 gearmandを起動 workerプロセスを起動 clientがジョブを投げ、先に起動したworkerがそれを処理 返ってきた結果を検証 テスト終了時には、gearmand/workerをシャットダウン ってのを全部いっぺんにできないかなーってんで、Test::TCPでやってみました。workerプロセスはlistenする必要がないので、 no warnings 'redefine'; local *Test::TCP::wait_port = sub {}; とかしちゃってるところが「ヒャー」って感じですが、まあいいかな、と。。。他にいい方法があったら教えてください!!1 use strict; use warnings; use Test::TCP; use Test::More; use Gearma

    Test::TCPでgearman workerのテストを書く - Kentaro Kuribayashi's blog
  • 非同期ジョブキューのアーキテクチャ設計、どうしてますか? - @kyanny's blog

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

    非同期ジョブキューのアーキテクチャ設計、どうしてますか? - @kyanny's blog
    KGA
    KGA 2010/10/28
    とても気になる。
  • http://twitter.com/kazeburo/status/27420440766

    KGA
    KGA 2010/10/20
  • gearman の worker process にスコアボードをつけてみる - tokuhirom's blog

    http://d.hatena.ne.jp/tokuhirom/20100201/1264989237 ↑でつくったスクリプトに score board 機能をつけてみた。 で、これかいてからきづいたんだけど、Parallel::Prefork には Parallel::Prefork::SpareWorkers ってのがあるんですね。で、これつかうと score board とかもつかえる。じゃあ、なにがちがうのかなーと。 で、いろいろきいてみたところ 「Parallel::Scoreboard のメリット」は 任意の長さのデータを書ける監視プロセスとワーカープロセスに親子関係がなくても使える任意のマネージャーと組み合わせることができる毎秒1回ポリングとかにはむかない(モニタリングの方は遅いため) ステータスの書き込みは seek & write だから速い「Parallel::Pref

  • How to manage Gearman worker processes. - tokuhirom's blog

    http://www.pqpq.de/mt/2010/01/gearmandriver.html ^^ I don't like this approach. Gearman のワーカーの管理はこういう風にするのが個人的にはおすすめ。 make workers as prefork model by Parallel::PreforkMaxRequetsPerChild(such as same name configuration in Apache) is requireduse daemontools for your lazinessGearman::Driver is too heavy framwork for me. (and, workers should save the memory, but Gearman::Driver itself uses too much m

  • TheSchwartz / Gearman のワーカープロセス管理WorkerManager - stanaka's blog

    概要 Perlの非同期処理システムとしてTheSchwartz / Gearmanを非常に便利に使っているのですが、いい感じにワーカープロセスを管理したかったので、WorkerManagerなるものを作ってみました。作ったのは実は1年以上前なのですが、ようやくの公開です。 基は、Apacheのpreforkモデルを踏襲しています。特徴は、 子プロセスを複数起動させて、ジョブを並列実行 一定回数のジョブを実行したら、子プロセスを再作成 クラスを定義するのみでジョブを実行 TheSchwartz / Gearmanの切り替えを最低限の変更で実現 ワーカープロセスの安全な停止(プロセス停止の際に、実行中のジョブの終了後に終了) ジョブの実行時のタイムスタンプをジョブ投入からの遅延をログに保存 というあたりです。preforkモデルなので、あまりモダンな設計ではないですが、gdbでのデバッグの容

    TheSchwartz / Gearman のワーカープロセス管理WorkerManager - stanaka's blog
  • gearmandのHTTPプロトコル - スコトプリゴニエフスク通信

    gearmanのHTTPプロトコルを試してみようと思ったところ、だいぶハマったのでメモを残しておく。 gearmand起動オプションの注意点HTTPプロトコルのサポートはバージョン0.8から含まれており標準で有効になっているはず。確認するには、--helpで"http Options"が含まれているかチェック。 $ gearmand --help gearmand 0.10 - https://launchpad.net/gearmand usage: gearmand [OPTIONS] ... 略 libmemcached Options: --libmemcached-servers=SERVER_LIST List of Memcached servers to use. libsqlite3 Options: --libsqlite3-db=DB Database file to

    KGA
    KGA 2009/10/04
  • 1