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_function("sum"){|job|
    (a, b) = job.arg.split(",")
    a + b
}
worker.work


Perlの側でこんな風に呼び出せる。
use strict;
use Gearman::Client;

my $gc = Gearman::Client->new;
$gc->job_servers("127.0.0.1");
my $ts = $gc->new_task_set;

for my $i(1..20){
    $ts->add_task("sum" => "3,4", {
        on_complete => sub{
            print "$i:". ${$_[0]}. "\n"
        }
    });
}
$ts->wait;


3+4が34って言われます。
とりあえず動いてるんだけど、なんかタスク追加したあとにselect待ちの状態になってくれないでビジーループになっちゃう。

あとで直す。もしくは誰か直して。


WriteBacks

ケーキうまい

(a, b) = job.arg.split(",").map { |n| n.to_i } これで。

Posted by s-ueda at 2007/05/05 (Sat) 11:52:47

【監禁】ポイントサイトについて詳細

が1クリック150ポイント=150円還元となっているので70個位の広告をクリックまたは登録すれば1万円の監禁閾値に達するわけですが、2ヶ月かかってようやく7万円の換金に成功しました!(.....省略されました。続きを読むにはワッフルワッフルと入力してください)

Posted by 広告クリックで7万円儲けたリスト at 2007/05/06 (Sun) 09:54:53

【監禁】ポイントサイトについて詳細

が1クリック150ポイント=150円還元となっているので70個位の広告をクリックまたは登録すれば1万円の監禁閾値に達するわけですが、2ヶ月かかってようやく7万円の換金に成功しました!(.....省略されました。続きを読むにはワッフルワッフルと入力してください)

Posted by 広告クリックで7万円儲けたリスト at 2007/05/06 (Sun) 10:03:26

【監禁】ポイントサイトについて詳細

が1クリック150ポイント=150円還元となっているので70個位の広告をクリックまたは登録すれば1万円の監禁閾値に達するわけですが、2ヶ月かかってようやく7万円の換金に成功しました!(.....省略されました。続きを読むにはワッフルワッフルと入力してください)

Posted by 広告クリックで7万円儲けたリスト at 2007/05/06 (Sun) 10:13:43

Ruby(ルビー) Rubyニュース

RubyRuby(ルビー)は、まつもとゆきひろ(通称Matz)により開発されたオブジェクト指向スクリプト言語であり、従来Perlなどのスクリプト言語が用いられてきた領域でのオブジェクト指向プログラミングを実現する。Rubyは当初1993年2月24日に生まれ、1995年12月にfj上で発表された。名称のRubyは、プログラミング言語Perlが6月の誕生石であるPearl(真珠)とほぼ同じ発音をすることから、まつもと氏の同僚の誕生石(7月)のルビーを取って名付けられた。Rubyはクラス定義、ガベージコレクション、強力な正規表現処理、マルチスレッド、例外処理、イテレータ・クロージャ、Mixin、演算子オーバーロードなどの機能を持つ。Perlの代替となることができることが初期の段階から重視されている。Perlと同様にグルー言語としての使い方が可能で、Cプログラムやライブラリを呼び出す拡張モジュールを組み込むことができる。Ruby処理系はインタプリタとして実装されている(実験的にはJIT方式による実行時コンパイルも試みられている)。Rubyの構文は、ALGOL系を継承しながら、可読性を重視している。Rubyにおいては整数や文字列なども含めデータ型はすべてがオブジェクトであり、純粋なオブジェクト指向言語といえる。Rubyはフリーソフトウェアとして(GPLあるいはArtisticに似た独自ライセンス)で配布されている。

Posted by Ruby(ルビー) Rubyニュース at 2007/05/06 (Sun) 16:46:21
TrackBack ping me at
http://la.ma.la/blog/diary_200705051003.trackback
Post a comment

writeback message: Ready to post a comment.







spam yoke. nanimo ireruna.