运行 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 实例。
我在我的本地主机 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 实例。