大佬教程收集整理的这篇文章主要介绍了Gearman doBackground()无法与php一起使用,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在本地系统上使用ubuntu 12.04 64位,PHP 5.3.10,GeaRMAN 1.1.5运行.
以下代码
print geaRMAN_version() . "\n";
抛出PHP警告
我也使用以下命令构建了yii控制台应用程序WorkerAdminCommand.PHP
<?PHP
class WorkerAdminCommand extends CConsoleCommand {
public function run() {
$gmworker = new GeaRMANWorker();
$gmworker->addServer(); // also tried with $gmworker->addServer('127.0.0.1:4730');
$gmworker->addFunction("getMyFunc", array($this, "getMyFunc"));
print "WaiTing for job...\n";
while ($gmworker->work()) {
if ($gmworker->returnCode() != GEARMAN_succesS) {
echo "return_code: " . $gmworker->returnCode() . "\n";
break;
}
}
}
public function getMyFunc($job) {
echo "start \n";
// long task
echo "\n end \n";
}
}
?>
和AdminCommand.PHP
<?PHP
class AdminCommand extends CConsoleCommand {
public function run($args) {
$gmclient = new GeaRMANClient();
$gmclient->addServer();
echo "Sending job\n";
$data = $args[0];
$result = $gmclient->doBACkground("getMyFunc", $data);
# check for varIoUs return packets and errors.
switch ($gmclient->returnCode()) {
case GEARMAN_WORK_STATUS:
list($numerator, $denominator) = $gmclient->doStatus();
echo "Status: $numerator/$denominator complete\n";
break;
case GEARMAN_WORK_FAIL:
echo "Failed\n";
exit;
case GEARMAN_succesS:
echo "Job process successfully\n";
break;
default:
echo "RET: " . $gmclient->returnCode() . "\n";
exit;
}
echo $result . PHP_EOL;
}
}
?>
经营工人
PHP job_entry.PHP workeradmin
正在等待工作…
运行客户端
PHP job_entry.PHP管理员arg1
这给我错误
解决方法:
你可以试试这个吗
$gmworker->addServer('127.0.0.1','4730');
以上是大佬教程为你收集整理的Gearman doBackground()无法与php一起使用全部内容,希望文章能够帮你解决Gearman doBackground()无法与php一起使用所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。