在多台机器中运行gearman Worker PHP代码

时间:2016-05-12 15:03:37

标签: php gearman

我在localhost Gearman服务器机器上使用多个worker,我的代码就在哪里。 我想,如果我在其他地方运行这个工作者,我必须要移动所有的库来使用它来执行这个任务。我是对的吗?

示例:在此脚本中,我使用的FILE类也在其中使用了多个库。

namespace app\controllers;
use app\file\File;

require_once 'vendor/autoload.php';

$worker = new \GearmanWorker();
$worker->addServer();

$worker->addFunction('parse_file', function($job){
    echo "entrou no add function!<br>";
    print_r ($job->workload());
    sleep(2);
    new File($job->workload()); # this class parses the files content in database
});

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

1 个答案:

答案 0 :(得分:1)

答案是肯定的 - 您需要在工作人员将运行的每台机器上提供您的库的副本。您将需要FILE类和任何依赖项。

每台计算机只需要一个代码库副本,但您可以运行多个工作实例。