GearmanWorker::wait

(PECL gearman >= 0.6.0)

GearmanWorker::wait等待来自某个作业服务器的活动

说明

public GearmanWorker::wait(): bool

当在非阻塞 I/O 模式下运行时,使工作进程等待来自某个 Gearman 作业服务器的活动。如果失败,则发出一个 **E_WARNING**,并包含最后遇到的 Gearman 错误。

参数

此函数没有参数。

返回值

成功时返回 **true**,失败时返回 **false**。

示例

示例 #1 在非阻塞模式下运行工作进程

<?php

echo "Starting\n";

# 创建我们的工作进程对象
$worker= new GearmanWorker();

# 使工作进程为非阻塞
$worker->addOptions(GEARMAN_WORKER_NON_BLOCKING);

# 添加默认服务器(localhost,端口 4730)
$worker->addServer();

# 添加我们的反转函数
$worker->addFunction('reverse', 'reverse_fn');

# 尝试获取一个作业
while (@$worker->work() ||
$worker->returnCode() == GEARMAN_IO_WAIT ||
$worker->returnCode() == GEARMAN_NO_JOBS)
{
if (
$worker->returnCode() == GEARMAN_SUCCESS)
continue;

echo
"Waiting for next job...\n";
if (!@
$worker->wait())
{
if (
$worker->returnCode() == GEARMAN_NO_ACTIVE_FDS)
{
# 我们没有连接到任何服务器,因此在尝试重新连接之前等待一段时间。
#
sleep(5);
continue;
}
break;
}
}

echo
"Worker Error: " . $worker->error() . "\n";

function
reverse_fn($job)
{
return
strrev($job->workload());
}


?>

参见

添加说明

用户贡献的说明

此页面没有用户贡献的说明。
To Top