情况是这样:我现在需要先调用gearman来处理都图片下载的任务,同时给gearman一个回调函数,当gearman执行完毕之后,它会调用我的回调函数来返回数据给我。
问题是:我使用doBackGround的函数时,输出$result,可以看到:"H:ip:xxx.xxx.xxx.xxx:number",这说明gearman已经被调用了吧,但是我在回调函数里面创建的文件并没有找到,我不知道问题出在哪里,求大神帮忙解答一下,谢谢了。
public function tryGearman() {
$url = "url1\n";
$url1 = "url2\n";
$url2 = "url3\n"; $urlFile = fopen("url.txt","w") or die("can not open the file");
fwrite($urlFile,$url);
fwrite($urlFile,$url1);
fwrite($urlFile,$url2);
fclose($urlFile); $gmclient = new GearmanClient(); $gmclient->addServer(); $gmclient->setCompleteCallback('getProData'); $result = $gmclient->doBackground('upload','{"callback_url":"https://my_web_app_realm_name/index.php?c=Game&a=getProData","input_file":"/usr/local/test/url.txt"}'); echo $result;
} public function getProData($data) {
$urlFile = fopen("result.txt","w") or die("can not open the file");
fwrite($urlFile,$data);
fclose($urlFile);
}
问题是:我使用doBackGround的函数时,输出$result,可以看到:"H:ip:xxx.xxx.xxx.xxx:number",这说明gearman已经被调用了吧,但是我在回调函数里面创建的文件并没有找到,我不知道问题出在哪里,求大神帮忙解答一下,谢谢了。
public function tryGearman() {
$url = "url1\n";
$url1 = "url2\n";
$url2 = "url3\n"; $urlFile = fopen("url.txt","w") or die("can not open the file");
fwrite($urlFile,$url);
fwrite($urlFile,$url1);
fwrite($urlFile,$url2);
fclose($urlFile); $gmclient = new GearmanClient(); $gmclient->addServer(); $gmclient->setCompleteCallback('getProData'); $result = $gmclient->doBackground('upload','{"callback_url":"https://my_web_app_realm_name/index.php?c=Game&a=getProData","input_file":"/usr/local/test/url.txt"}'); echo $result;
} public function getProData($data) {
$urlFile = fopen("result.txt","w") or die("can not open the file");
fwrite($urlFile,$data);
fclose($urlFile);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货