gearman python 实例

FROM: http://www.ttlsa.com/distributed-processing-systems/gearman-python-example/

有关gearman的介绍,可以参见本博客之前的文章。

gearman的Python客户端使用蛮简单的。具体方法参见:http://pythonhosted.org//gearman/library.html

worker:

from  gearman import GearmanWorker
from var_dump import var_dump
import json
 
def worker_ttlsa.com(gearman_worker,job):
    var_dump(job.data)
    param = json.loads(job.data)
    sleep = param['sleep']
    return str(sleep)
 
def main():
    gw = GearmanWorker(['127.0.0.1:4730'])
    gw.register_task("worker_ttlsa.com", worker_ttlsa.com)
    gw.work()
 
if __name__ == "__main__":
    main()

client:

from gearman import GearmanClient
from var_dump import var_dump
import json
 
def main():
    gc = GearmanClient(['127.0.0.1:4730'])
    param = {'msg':'www.ttlsa.com', 'sleep':5}
     
    request = gc.submit_job('worker_ttlsa.com',json.dumps(param))
    var_dump(request.result)
 
if __name__ == "__main__":
    main()

注意:worker一定要有retrun,且返回的内容必须是字符串。否则报下面的错误。

TypeError: Expecting byte string, got <type ‘NoneType’>

查看状态:

# telnet 127.0.0.1 4730
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
workers
36 127.0.0.1 - :
35 127.0.0.1 - : worker_ttlsa.com
.
status
worker_ttlsa.com    0       0       1
.

status输出分4个部分:已注册的任务,正在运行的任务,队列中的任务,可用的worker。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值