首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[函数]GearmanWorker::setTimeout()函数—用法及示例

发布于 2025-04-26 16:05:22
0
30

适用版本(PECL gearman >= 0.6.0)


说明

public GearmanWorker::setTimeout(int $timeout): true
设置等待套接字I/O活动的时间间隔。


参数
timeout
以毫秒为单位的时间间隔。负值表示无限超时。


返回值
总是返回 true。

示例
示例 #1 A simple worker with a 5 second timeout

<?php

echo "Starting\n";

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

# Add default server (localhost).
$gmworker->addServer();

# Register function "reverse" with the server.
$gmworker->addFunction("reverse", "reverse_fn");

# Set the timeout to 5 seconds
$gmworker->setTimeout(5000);

echo "Waiting for job...\n";
while(@$gmworker->work() || $gmworker->returnCode() == GEARMAN_TIMEOUT)
{
  if ($gmworker->returnCode() == GEARMAN_TIMEOUT)
  {
    # Normally one would want to do something useful here ...
    echo "Timeout. Waiting for next job...\n";
    continue;
  }

  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

echo "Done\n";

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

?>
运行没有提交作业的worker将生成如下所示的输出:

Starting
Waiting for job...
Timeout. Waiting for next job...
Timeout. Waiting for next job...
Timeout. Waiting for next job...


评论
一个月内的热帖推荐
啊龙
Lv.1普通用户

9545

帖子

31

小组

3242

积分

赞助商广告
站长交流