python gearman

18 篇文章 0 订阅
11 篇文章 0 订阅

这篇是我访问量最大的博文。

大家热情这么高。我想做个详细的说明。


work.py

import gearman

#连接 gearman  服务端

gm_worker = gearman.GearmanWorker(['127.0.0.1:4730'])

#定义函数

def task_listener_reverse(gearman_worker, gearman_job):
    print "Doingjob..."
    returngearman_job.data+"Done"

#注册函数

gm_worker.register_task('reverse', task_listener_reverse)

# 运行

gm_worker.work()

后台运行work  python work.py & 


 client.py

import gearman

#连接gearman客户端
gm_client = gearman.GearmanClient(['127.0.0.1:4730'])

#调用work的方法
completed_job_request = gm_client.submit_job("reverse", "arbitrarybinary data")
#打印结果
print completed_job_request.result


咱们下面来做个复杂点的

sorry 我的代码是用vimi敲的。。分行。


在同一语言里面你可以直接交互。

但是gearman跨语言的是后走的json格式。

所以呢,你最好还是将你传递的值 用json处理

  import gearman,sys,json
  2 from lxml.html.soupparser import fromstring
  3 gm_worker = gearman.GearmanWorker(['127.0.0.1:4730'])
  4 
  5 # See gearman/job.py to see attributes on the GearmanJob
  6 # Send back a reversed version of the 'data' string
  7 def task_listener_xpath(gearman_worker, gearman_job):
  8     #print gearman_job.data
  9     ##return json.dumps('data')
 10     doc = json.loads(gearman_job.data)
 11     root = fromstring(doc["content"])
 12     find_text = root.xpath(doc["xpath"])
 13     text = find_text[0].text
 14     print "Title is : " + find_text[0].text
 15     return json.dumps(text)
 16 
 17 
 18 # gm_worker.set_client_id is optional
 19 #gm_worker.set_client_id('your_worker_client_id_name')
 20 gm_worker.register_task('xpath', task_listener_xpath)
 21 
 22 # Enter our work loop and call gm_worker.after_poll() after each time we timeout/see socket activity
 23 gm_worker.work()














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值