当前位置: 首页 > 工具软件 > py3k-gearman > 使用案例 >

python gearman

公冶安怡
2023-12-01

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

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


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()














 类似资料:

相关阅读

相关文章

相关问答