並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 76件

新着順 人気順

gearmanの検索結果1 - 40 件 / 76件

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

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

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

      What is Gearman? Gearman provides a generic application framework to farm out work to other machines or processes that are better suited to do the work. It allows you to do work in parallel, to load balance processing, and to call functions between languages. It can be used in a variety of applications, from high-availability web sites to the transport of database replication events. In other word

      • log4ZIGOROu : Gearmanを使ってみた

        daemonの起動 下記のようにdaemonとして起動します。 daemon起動オプションに関してですが、PODの記載は誤りで--daemonizeでは無く--daemonです。 $ sudo gearmand --daemon --pidfile=/var/log/gearmand.pid --debug=1 関数の登録 次にgearmanに実行させたい処理を予め登録し、さらにjob queを待ち受けるworkerを記述します。 #!/usr/bin/perl use strict; use warnings; use Data::Dump qw(dump); use Gearman::Worker; use Storable qw(thaw); use List::Util qw(sum); my $worker = Gearman::Worker->new; $worker->job

        • 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

          • javascriptで作るGearmanクライアント - bits and bytes

            Webアプリケーションの中には、ときどき時間がかかる処理をしないといけない部分があります。アップロードされた画像のサムネイルを多数生成するときや、クライアントからのリクエストに応じてさらにリモートのサーバからファイルを取得してきたりするとき、ふつうに作るとユーザは処理が終わるまでの数秒~数十秒間待たされるのでイライラしてきます。 こんなときには昨年のYAPCでLiveJournal: Behind The Scenesの中で紹介されている、perlで書かれた非同期処理サーバのGearmanが役に立ちます。Webアプリケーションから時間のかかる処理を別プロセスで動いているGearmanに依頼しておくことで、時間のかかる処理が終わるまで待つことなくユーザにレスポンスを返すことができます。 ほんとうは、時間のかる処理の性質と、必要とされる機能に応じてGearmanとTheSchwartzとを使い

            • GearmanとかNginxとか : blog.nomadscafe.jp

              GearmanとかNginxとか ひさびさにFemoを弄った。 サーバ周りを中心にいくつか改善 まず、以前FastCGIの環境で動かないと書いたText::VimColorをGearmanを使うようにしてみました。 Text::VimColorはText::Hatena(バージョン0.16)の中で使われています #Worker(worker.pl) my $worker = Gearman::Worker->new; $worker->job_servers(qw/127.0.0.1/); $worker->register_function( vimcolor_html => sub { my $g = shift; my $arg = Storable::thaw( $g->arg ); my %arg = map { $_ => $arg->{$_} } grep { $_ !~ /

              • Gearmanのはまりどころ | へぼい日記

                最近Gearmanに入門しているのですが、いろいろとはまったのでメモ。 $worker->workは”Do one job”ではなくDo job loop Gearman::WorkerのPODには $worker->work while 1; みたいなサンプルが書いてあったり Gearman::Job->work(%opts) Do one job and returns (no value returned). You can pass "on_start" "on_complete" and "on_fail" callbacks in %opts. って書いてあるのですが(しかもこれは、Gearman::JobではなくてGearman::Workerだし、、、) workはオプション無しで呼ばれた場合はwhile 1なんかなくてもloopします。 work_once的な動きにしたい

                • Perlのメモリ保存型Job Queueフレームワーク入門覚書 ~ClutchとGearmanとWorkerのFork~ | hirobanex.net

                  お仕事をメモリに保存するタイプのジョブキューフレームワークのGearmanとClutchをそれぞれ使ってみて、実用的なワーカーのforkのコードを書いた、そのあたりの備忘録を、Hachojio.pmでLTした内容です。 やりたいこと ~なんでJob Queueとか使おうとしたのか~ なんで入門するかって話ですが、こんな経緯があったのです。「いくつかのAPIをたたいてその結果を集約して返したい」、あるいは、「たくさんAPIをたたきたいんだけど短時間で処理して、結果を返したい」と思ったんです。つまり、「並列処理をしつつ、結果をまとめて返したい」ということ実現する必要が出たんですね。それで、Perlでじっそうするとなると、以下の4つから選ぶんだと思います。 Coro AnyEvent Fork Job Queue AnyEventとかCoroとかは並列処理をさせる中身によって気にしなきゃいけない

                  • 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

                    • gearman [Gearman Job Server]

                      What is Gearman? Gearman provides a generic application framework to farm out work to other machines or processes that are better suited to do the work. It allows you to do work in parallel, to load balance processing, and to call functions between languages. It can be used in a variety of applications, from high-availability web sites to the transport of database replication events. In other word

                      • perlのGearmanとPHPのNet_Gearmanでreblogサーバを作る « ku

                        PHPからperlのGearmanみたいなのを使いたくてtwitterでぼやいてみたらTwitter / ippei ogiwara: @ku ぐぐったらでてきた http://tinyur…というのを教えてもらったのでGearmanでreblogサーバを作ってPHPから呼んでみました。 Twitter / ippei ogiwara: @ku おもしろそうだから、使ってみたらおしえてください というわけで簡単にレポート。 Gearmanのインストール まずGearmanが入っていなかったのでlog4ZIGOROu : Gearmanを使ってみたを参考にインストール。 サーバはFreeBSDです。Sys::Syscallだけforceで入れました。 sudo cpan -i Sys::Syscall sudo cpan -i Danga::Socket sudo cpan -i Gear

                        • 最速インターフェース研究会 :: Gearman::UtilとGearman::WorkerをRubyに移植

                          追記: 元のソースを愚直に書き写しただけなのでRubyっぽくないです。 ちゃんとしたのがciされたようなので用済みです! http://code.sixapart.com/svn/gearman/trunk/api/ruby/lib/ http://dan-erat.livejournal.com/83941.html ---- http://la.ma.la/misc/ruby/gearman/util.rb http://la.ma.la/misc/ruby/gearman/worker.rb RubyでGearmanのWorkerを書いて。 require 'gearman/worker' worker = Gearman::Worker.new worker.debug = 1 worker.job_servers("127.0.0.1") worker.register_func

                          • Gearmanのサンプルを書いた - だるろぐ

                            perlでキューイングするにはGearmanかTheSchwartzを用いるのが主流。 何となくGearmanのサンプルを書いた。 GitHub - hirafoo/queuing_sample 何はともあれモジュールを入れる。 # cpanm Gearman::Server Gearman::Client Gearman::Worker プロセス管理 キューイングを使う理由は「重い処理を裏に投げたい」もしくは「それ専用のプロセスが他に居て、そいつに仕事を投げて結果だけもらいたい」というのが主。 gearmanはキューイングはしてくれるが、プロセス管理まではしてくれないので自力でする必要がある。 キューイングするときは大抵重い処理だったり一気に沢山リクエスト来る場合なので、あらかじめforkしておくべし。 ここに素敵な例があるのでパクるといいと思います。僕はパクらせていただきました。 ht

                              Gearmanのサンプルを書いた - だるろぐ
                            • gearman の worker processのスコアボードをネットワーク越しに見えるようにした - blog.nomadscafe.jp

                              tokuhiromのgearman の worker process にスコアボードをつけてみる (git) のスコアボードをネットワーク越しに確認できるようにしてみた。 git: http://github.com/kazeburo/gearman-starter.pl 具体的にはworkerのloopに入る前に指定したportをlistenするプロセスをforkして、そいつにアクセスすることで、ステータス(スコアボード)を取得できる。 ステータスを表示するために—port と —listen の2つのオプションを追加した。起動は % perl -Ieg/lib ./gearman-starter.pl -s 127.0.0.1:7004 --scoreboard-dir /tmp/test --listen localhost --port 7005 MyWorker な感じ。teln

                              • 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から使ってみた。 - 個人事業主のつぶやき
                                • Gearmanインストール、Rubyから使う - 橋本詳解

                                  参考 http://d.hatena.ne.jp/okinaka/20090823/1251036470 sudo apt-get install gearman-server /etc/default/gearman-server を編集、trueにする ENABLED="true"sudo /etc/init.d/gearman-server start最近のバージョンのgearmanはport 4300で動くらしいが、aptで入ったのは7003だった。 githubにruby用のライブラリがあった http://github.com/xing/gearman-ruby gemでインストール sudo gem sources -a http://gems.github.com sudo gem install xing-gearman-ruby 使ってみる。 clientがURLをdo

                                    Gearmanインストール、Rubyから使う - 橋本詳解
                                  • 橋本商会 » Cでgearman workerを書いてRubyのclientから呼び出す

                                    gearmandをソースからインストールして、Cライブラリのlibgearmanが使えるようになった。 これでC言語でworkerを作ってRubyのclientから呼び出せる。環境はUbuntu9.04とgearmand0.11 ■Cでworkerを書く str_reverseというアビリティを持つworkerを作る。 ほぼAPIドキュメントのままだが、jobの引数を受け取るのと、値を返せるようにがんばった。ジョブ失敗した時とかのエラー処理全然書いてない。たぶんenum gearman_return_tを返せばいいんだろうけど strreverse-worker.c // 文字列をreverseして返すworker #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include 

                                    • RのGearman Worker作ってみた(Perl経由だけど) - As a Futurist...

                                      Tsukuba.R でネタをやらなきゃいけないことになったので、この週末に無い頭をひねってなんとかネタを作り出しました。思ってたよりおもしろいなぁと思ったので、とりあえず動くものができたところで上げてしまいます。ツッコミ大歓迎! Tsukuba.R#9 – Tsukuba.R – livedoor Wiki(ウィキ) R をブラウザから使ってみたい WEB 屋さんとしてはやっぱブラウザ経由でなんかやってみたくなるものです。というわけで R をブラウザから使うというネタを考えました。データをアップロードして好きな R を実行させると、結果(主に画像)が表示されるとかできたらかっこいいですよね! 。。。 。。。 ありました。。。。 Rweb やー素晴らしいですね。テキストエリアにコード打ち込んで実行させるとかっこよく画像でるし、データのアップロードとかもできるし。。。俺やることないわー。。。な

                                        RのGearman Worker作ってみた(Perl経由だけど) - As a Futurist...
                                      • Gearmanは64kbぐらいのデータをうまくやりとりできないっぽい

                                        最近Gearmanを使っていてわかったのですが、Gearmanでは64kbぐらい(ぐらいっていう曖昧な表現なのは、毎回そうとは限らないから)のデータをworkerに投げると、うまく処理できないようです。うまく処理できないというかデータが欠損してしまうようです。 なんでなのか調べてみると、Gearman::Utilのread_res_packet()という関数の下記の部分で、clientから投げられたデータを全て取得できていないというのがわかりました。 if ($len) { $rv = sysread($sock, $buf, $len); return $err->("short_body") unless $rv == $len; } この部分の$lenは、clientから投げられたデータ(パケット)のヘッダーから取得したもので、workerに送られてきたデータ長になります。で、$rv

                                        • 今さらGearman入門 - 車輪を再発明 / koba04の日記

                                          Gearmanに触れる機会があったので今さらながら入門しました。 思っていた以上に簡単に動かすことが出来たのでその流れを書きたいと思います。 Gearmanとは ジョブキューってやつですね。やって欲しいことをどんどんキューに入れていくと、別プロセスのワーカーっていうのがキューから仕事を取り出してどんどん実行してくれるという Perlで書かれた他のジョブキューとしては、「TheSchwartz」や「Qudo」や最近だと「Jonk」などがあるかと思います。 使い分けなどについては、ここで書くより下記を読んでいただくのがわかりやすいかと思います。 http://d.hatena.ne.jp/tokuhirom/20071017/1192589429 http://blog.nekokak.org/show?guid=zuFdE9X13xGrBpcz1pTnqQ http://perl-users

                                            今さらGearman入門 - 車輪を再発明 / koba04の日記
                                          • 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
                                            • Gearman Administrative Protocol - すぎゃーんメモ

                                              Gearmanサーバがどんな状態なのかチェックしたりするのに、Telnetでtext-baseなプロトコルで操作ができる。 基本的な使い方 まずはGearmanサーバの起動。 $ gearmand -d-dオプションはデーモン起動。デフォルトで7003番portを使うので、ここでtelnetでlocalhost: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 - すぎゃーんメモ
                                              • 橋本商会 » OpenCVで画像のサイズを求めるgearman workerを作って、Rubyから呼ぶ

                                                ファイル名を渡すと画像サイズを返すgearman workerを作った。 {"width":1600, "height":1200} という風にJSON風に値を返す。 以前画像のだいたいの色を求めるgearman workerを作ってたんだけど、C++で書いたworker側を単独で動作テストする事ができなくてどうしようか悩んだ。テスト用のclientと同時に作らなければならなくて、どちらにバグがあるのか切り分けるのが面倒だった。 そこで、workerの起動時に ./imgsizeWorker --test "/path/to/imagefile.jpg" という風にgearman clientから来る引数と同じ形式で渡すと、単体のプログラムとしても動作チェックできるようにした。 こうすると普通にworkerとして起動する。 ./imgsizeWorker -s localhost -p 7

                                                • Gearmanはじめました。 - Perl日誌

                                                  近年のWeb業界ではリクエストがある度にすべてを処理してレスポンスを返すのではなく、一部の処理をジョブキューに投げるなりして負荷軽減を試みるのが定石となりつつあるような、そうでないような、そんな時代に生まれたPerl初心者のために、Gearmanを使ったサンプルコードを書いてみるという記事です。 インストール たぶんこうするんだと思います。 install Gearman::Server Gearman::WorkerとGearman::Client,Gearman::Taskはこれで入るやら、はいらないやら、自分の開発環境はずいぶん前にGearman入れていたのですが、ちょっとインストール方法が変わってるような気がします。 ディレクトリ構成 これから紹介する記事はこういう(感じの)ディレクトリ構成です。 /home/hogehoge/eg/client.pl /home/hogehoge

                                                    Gearmanはじめました。 - Perl日誌
                                                  • Gearman UDFを試してみる(1) - スコトプリゴニエフスク通信

                                                    前エントリで紹介したスライドに書いてあることをPythonでやってみようと思い、その下準備としてGearman UDFをインストールして動作確認を行うところまでやってみる。環境はCentOS 5.3とMySQL 5.1.34。 Gearman UDFをインストールするlibuuidが必要なのでe2fsprogs-develをインストールする。 $ sudo yum install e2fsprogs-devel CentOSのlibeventは古すぎてlibgearmanをビルドできないので、libeventの最新安定版をインストールしておく。 $ wget http://monkey.org/~provos/libevent-1.4.10-stable.tar.gz $ tar xzf libevent-1.4.10-stable.tar.gz $ cd libevent-1.4.10-

                                                    • display Gearman status with pure perl - tokuhirom's blog

                                                      gearmand の様子をモニタリングするための mod_gearman_status ってのが gearman の ml にあがってたけど、C でかいてある意味がわからないし、適当なかんじコードだし、apache module として実装する意味がわからないので、pure perl でかきなおしてみた。 http://github.com/amir/mod_gearman_status ↓ http://github.com/tokuhirom/gearman-stat.psgi

                                                      • 橋本商会 » OpenCVで画像のだいたいの色を求めるgearman workerを作って、Rubyから呼び出す

                                                        画像のだいたいの色を求めるをgearman worker化した。 画像ファイル名をテキストで投げると {width: 136, height: 147, r: 249, g: 234, b:230} という形式で画像のサイズとだいたいの色を返す。 Cでworkerを書いてRubyで呼び出す方法は橋本商会 Cでgearman workerを書いてRubyのclientから呼び出すに書いたとおり。 これでOpenCVの解析をgearman workerとして複数並列に動かしてそれをRubyから使いまくるというのができるワハハ C++なのはboost::regex_splitでも使って引数を受け取ろうかと思ってたんだけど、そもそもファイル名だけしか受け取らなかったから意味がなかった。 imgcolorWorker.cpp // 画像のだいたいの色とサイズを返すgearman worker #in

                                                        • [PHP]Gearmanでqueueing | ReSTARTR

                                                          webページを生成する際には、今すぐやらなきゃいけないことと、今すぐでなくても良いものがあります。 今すぐやらなきゃいけないこととは、ユーザーリクエストに対するDB参照結果等のことで、今すぐでなくても良いものとはアクセスログなどの処理をDBに書き込んだりメール送信したりなど。それ以外にもあるかもですが大体そんな感じです。 通常であればすべて一回のHTTPリクエストの中でやるわけですが、queueingをすれば今やるべきでないことを後回しにできます。他にもメリットはありますが割愛で。 で、phpでqueuingをやるとしたら、こんなのがあるそうです。 Q4M Gearman ActiveMQ beanstalkd で、Q4Mを試そうとしたらMySQL5.1以降でないとダメとか。 ちょっとした事情で「5.1以降」という制約は避けたいので、Gearmanを試してみる事に。 ※最後のbea

                                                          • Gearman の使いどころについて - tokuhirom's blog

                                                            「Gearman って gearmand がおちたら、キューにはいってるジョブがふっとんじゃうんでしょ?」とか「ワーカーがしんだらジョブきえちゃうんでしょ?」とかいう話があるわけですが、そもそもそういう風にきえてこまる用途につかうものじゃないのかな、とおもってます。 gearman はそもそもが、distributed remote function call server なので、ジョブキュー的なつかいかたは、「たまたまできる」程度にとらえるのが妥当ではないかとおもいます。 remote function call が主用途だから、基本的にはリアルタイムに処理して、caller は処理がおわるのを待つのが基本です。だから、処理が失敗したら、caller 側でエラー処理をすればいいという設計思想なのかなーとおもってる。 もともと gearmand って「gearmand - Gearman

                                                            • TheSchwartzの代わりにGearman+libdrizzleでジョブキューサーバ作る - 個人事業主のつぶやき

                                                              TheSchwartzはPHPのライブラリないのかね? ざっと探したけど見つからなかったので、 Gearmanを代わりに使ってみる。 Gearman単体だと、キューがメモリ上に置かれちゃって、落ちたときとかに吹っ飛ぶのでlibdrizzleを使ってMySQLにキューを置くようにします。 # libevent-develが別途必要。 yum install libevent-devel # 最初にlibdrizzleをインストール wget http://launchpad.net/libdrizzle/trunk/0.8/+download/libdrizzle-0.8.tar.gz tar xzf libdrizzle-0.8.tar.gz cd libdrizzle-0.8 ./configure make make install cd .. # gearmand インストール wg

                                                                TheSchwartzの代わりにGearman+libdrizzleでジョブキューサーバ作る - 個人事業主のつぶやき
                                                              • web2.0 時代のジョブキューサーバー Gearman と TheSchwartz の関係について - tokuhirom's blog.

                                                                なぜ JobQueue が必要なのか1つのプロセスで複数のジョブをやらせようとすると、読み込むライブラリが多くなってしまってプロセスがおおきくなるという問題があります。mod_perl に Imager を読ませると、各プロセスが重くてしかたありません。なので、Imager をロードした画像処理専用サーバーをたちあげたくなります。その役目は Imager 専用 gearman プロセスにやらせればいいでしょう。cron でプログラムを起動させたいのだが、ライブラリをいっぱいよむので起動に時間がかかるという場合。ライブラリを一通り読ませて常駐させている TheSchwartz の worker に対してジョブを enqueue するだけのプログラムを cron で kick するようにすれば、プロセス起動時間が短縮できて便利。daemon プロセスを IO 多重化により書いている場合、時間の

                                                                • Net_Gearmanを使ってPHPでGearman Workerを作る

                                                                  PEARのモジュールとして公開されている Net_Gearman をインストールします。 #sudo pear install Net_Gearman-0.2.3 Net_Gearmanは、github でも公開されています。このページに書かれているお手本を見れば、使い方は判ると思います。 Workerの作成 Net_Gearman は、ワーカーと実際に処理を実装するジョブを別のソースに分けて書く必要があります。 Net_Gearman_Workerでワーカーを作り、addAbilityでジョブ名を登録、beginWorkでクライアントからのジョブの待ち受けを開始、みたいな流れ。 gearman_worker.php < ?php require_once 'Net/Gearman/Worker.php'; $servers = array('localhost:7003'); try {

                                                                    Net_Gearmanを使ってPHPでGearman Workerを作る
                                                                  • Gearman, TheSchwartz勉強日記 - スコトプリゴニエフスク通信

                                                                    前々から勉強しなくてはと思っていたGearmanとTheSchwartzで遊んでいます。PythonのGearman Client経由でTheSchwartzにジョブを追加する必要があるのですが、まずはPythonでGearmanのClientとWorkerを書いてみます。Python Gearman bindingにはsixapartのレポジトリのものを使いました。easy_installでインストールできるので楽ですね。 $ easy_install http://code.sixapart.com/svn/gearman/trunk/api/python/lib/ テスト用に書いてみたWorker. # worker.py from gearman import GearmanWorker def echo(job): # Do something print job.arg wor

                                                                    • Distributed Web Crawling with Tornado and Gearman - iAcquire

                                                                      Welcome to Technology Tuesday – where the iAcquire development team will be sharing a little piece of our world with you once a week. Over the past 3 years we’ve been quietly behind the scenes building the technology that makes iAcquire’s services impossible to compete with. Today we’re going to share with you a method… Welcome to Technology Tuesday – where the iAcquire development team will be sh

                                                                        Distributed Web Crawling with Tornado and Gearman - iAcquire
                                                                      • Gearmanのあれ

                                                                        例のGearmanのあれですが、naoyaさんが調べてくれてます(Gearmanのやつ、Gearmanのやつ#2)。 とりあえず、問題となる箇所をsysread()ではなく、recv()でMSG_WAITALLをすることにより64kb以上のデータでも問題のなく取得できることを確認しました。すげー。 変更は下記のような感じにしました。ほぼnaoyaさんが書いた修正案そのままです。 --- Util.pm.old 2007-06-30 06:40:24.000000000 +0900 +++ Util.pm.new 2007-09-29 13:55:10.278878000 +0900 @@ -1,6 +1,7 @@ package Gearman::Util; use strict; +use Socket; # for MSG_WAITALL # I: to jobserver # O:

                                                                        • Gearman

                                                                          [2009-07-20] Version 0.1 of the Gearman user defined functions for PostgreSQL released! You can find it on the downloads page or at Launchpad.

                                                                          • Gearman::Clientはまだtimeoutをサポートしてなかった

                                                                            最近Gearmanをいじってるんですが、Gearman::Clientでtimeoutを設定してやってもtimeoutしてくれない。 なぜだー!とソースを見たら #TODO: timeout isn't supported by this client API yet. と一番上に書いてあった…。サポートしてないのかよ。PODに書いてくれ! で、tokuhiromさんのBackPaperのGearman::Client::Asyncの例を元に、文末のようなコードでやってみた。 そしたらtimeoutは効いてくれるみたい。ちゃんと起動して5秒後にはon_failがコールされた。 お、これでいけるかな?と思ったら、on_failしたあとすぐに処理が戻ってこないで10秒経って(worker.plのsleepの時間だけ待って)から「done」が表示された。 timeoutしたあとに、すぐ処理が戻る

                                                                            • Gearman

                                                                              Gearman provides a generic application framework to farm out work to other machines or processes that are better suited to do the work. It allows you to do work in parallel, to load balance processing, and to call functions between languages. It can be used in a variety of applications, from high-availability web sites to the transport of database replication events. In other words, it is the nerv

                                                                              • PerlでCatalystとかGearmanとかガジェットとか触るお仕事です - D-6 [相変わらず根無し]

                                                                                PerlでCatalystとかGearmanとかガジェットとか触るお仕事です 何個か応募をいただいたので、ひとまず締め切ります。ありがとうございました。 実はとあるプロジェクトを進行させていて、直近でもう一人か二人くらい手が欲しいと思っています。というわけでPerlで仕事したい人募集中です。 Perlで書くWebサービスで、CatalystとかGearmanとかそういったものでこさえます。 期間は6月〜8月、お金は応相談、勤務地は渋谷。勤務時間応相談、週3日かそれ以上希望。できればラップトップ持参で作業していただけると幸い。 必要な能力: Webサービス構築の基本知識Perlの知識リモートで連絡を取ることが多いので、コミュニケーションスキルはあったほうが望ましいわからないところは教えますが、比較的急ピッチでコードを書き、技術を盗む事ができるほうが望ましいです。 ちょっと急いでいるのでこんな

                                                                                • FuelPHPでGearmanを動かしてみた - Chrysolite

                                                                                  Gearmanとは? Gearmanはジョブキューサーバの一つです。 時間のかかる処理等をバックグラウンドで処理する時や、分散処理を行いたい時に使うとではないかと。 他の使い方はわかりませんが、これだけでも十分利用価値があります。 使ってみる インストール方法は他のサイトみて下さい。 以前にビルドしたものの、どうやったか覚えてないので(;´Д`) 参考: TheSchwartzの代わりにGearman+libdrizzleでジョブキューサーバ作る - 個人事業主のつぶやき ジョブキューサーバ Gearmand を PHP から使ってみた | tech.kayac.com - KAYAC engineers' blog とりあえず自分はgearmandにlibdrizzleを組み合わせてMySQLにキューを保存しています。 Net_Gearmanの導入 http://pear.php.net

                                                                                    FuelPHPでGearmanを動かしてみた - Chrysolite