免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1851 | 回复: 1
打印 上一主题 下一主题

python gearman php 的json 传递问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-20 14:09 |只看该作者 |倒序浏览



php 服务端 代码
<?php

header ( 'Content-type:text/html;charset=utf8' );
set_time_limit(0);
echo "Starting\n";

# Create our worker object.
$gmworker= new GearmanWorker();

# Add default server (localhost).
$gmworker->addServer("127.0.0.1",4730);

$gmworker->addFunction("json_php", "json_worker_php");

print "Waiting for job...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function json_worker_php($job)
{

   echo $job->workload();
  echo gettype($job->workload())."\n";
   $jsonx=json_decode($job->workload(),true);
   echo "\n";
  echo "json_decode.".function_exists("json_decode")."\n";
  $json2=json_decode('{"name":"123","id":"123"}',true);
  echo "\n";
  print_r($jsonx);
  echo "\nname:";
  echo $jsonx['name']."\n";
return $jsonx['name'];
  
}




?>



python 代码

#coding:utf-8
import gearman


gm_client = gearman.GearmanClient(['127.0.0.1:4730'])


completed_job_request = gm_client.submit_job("json_php", "{\"name\":\"rose\",\"id\",\"123\"}")
dir(gearman)
print completed_job_request.result





返回结果 为空

php worker输出
Starting
Waiting for job...
{"name":"rose","id","123"}string

json_decode.1


name:




论坛徽章:
0
2 [报告]
发表于 2012-07-20 14:12 |只看该作者
不清楚 为什么相互之间解析不了传递的json..
当 python作为服务器端 时也解析不了甚至 python客户端的 json数据

#!/usr/bin/python
import json,gearman



gm_worker = gearman.GearmanWorker(['127.0.0.1:4730'])
def task_jsontest(gearman_worker, gearman_job):
    print gearman_job.data
    jsondata = json.loads(gearman_job.data)
    text="error"
    print text
    #if(jsondata['name'] and jsondata['id']):
    text = "name is "+jsondata['name']+" id is "+jsondata['id']
    print text
    return text


# gm_worddker.set_client_id is optional
#gm_worker.set_client_id('your_worker_client_id_name')
gm_worker.register_task('jsontest', task_jsontest)

# Enter our work loop and call gm_worker.after_poll() after each time we timeout/see socket activity
gm_worker.work()
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP