运行 gearman Worker PHP 多机代码

Running gearman Worker PHP code in multiple machines

我在我的本地主机 Gearman 服务器机器上使用了多个 worker,我的所有代码都在哪里。 我在想,如果我 运行 这个工作人员在别处,我必须需要移动我用来执行此任务的所有库。我说的对吗?

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

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;
  }
}

答案是肯定的 - 您需要在工作人员将 运行 使用的每台机器上保存一份库副本。您将需要文件 class 和任何依赖项。

每台机器只需要一份代码库副本,但您可以 运行 多个 worker 实例。