首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GearmanClient::doBackground

(PECL gearman >= 0.5.0)

GearmanClient :: doBackground - 在后台运行一个任务

描述

代码语言:javascript
复制
public string GearmanClient::doBackground ( string $function_name , string $workload [, string $unique ] )

在后台运行任务,返回可用于获取正在运行的任务状态的作业句柄。

参数

function_name

工作人员执行的注册功能

workload

要处理的序列化数据

unique

用于识别特定任务的唯一ID

返回值

提交的任务的作业处理。

例子

示例#1提交并监视后台作业

这个例子中的工作人员引入了一个虚假的延迟来模拟长时间运行的工作。客户端脚本定期检查正在运行的作业的状态。

代码语言:javascript
复制
<?php

/* create our object */
$gmclient= new GearmanClient();

/* add the default server */
$gmclient->addServer();

/* run reverse client */
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo "bad return code\n";
  exit;
}

$done = false;
do
{
   sleep(3);
   $stat = $gmclient->jobStatus($job_handle);
   if (!$stat[0]) // the job is known so it is not done
      $done = true;
   echo "Running: " . ($stat[1] ? "true" : "false") . ", numerator: " . $stat[2] . ", denomintor: " . $stat[3] . "\n";
}
while(!$done);

echo "done!\n";

?>

上面的例子会输出类似于:

代码语言:javascript
复制
Running: true, numerator: 3, denomintor: 14
Running: true, numerator: 6, denomintor: 14
Running: true, numerator: 9, denomintor: 14
Running: true, numerator: 12, denomintor: 14
Running: false, numerator: 0, denomintor: 0
done!

扫码关注腾讯云开发者

领取腾讯云代金券