pythonのGearman Client
ここにあるのでチェックアウトしてインストールする。
http://code.sixapart.com/svn/gearman/trunk/api/python/
インストールはいつも通り、
$ sudo python setup.py install
としておいた。
使い方
「hello」というWorkerが動いてて「hello 引数」という文字列を返します。
#!/usr/bin/env python # -*- coding: utf-8 -*- from gearman import GearmanClient, Task if __name__ == '__main__': client = GearmanClient(["127.0.0.1"]) res = client.do_task(Task("hello", "foo")) print res
結果
hello foo
かんたん。
引数
$arg is an opaque scalar or scalarref representing the argument(s) to pass to the distributed function.
http://search.cpan.org/~bradfitz/Gearman-1.09/lib/Gearman/Task.pm
ってことで、Gearmanのclientからworkerに渡すことができるのはscalarかscalarrefだけのようです。
リファレンスを渡す場合はStorableのfreeze/thawが使えるけど、clientにpython、workerにperlみたいな場合はStorableじゃダメですね。なんかいい方法あるのかな。