如何将全局变量传递给 Gearman worker (PHP)



我的 Gearman 工作人员需要连接到我的数据库。如何将对全局$db变量的引用传递给我?在下面的代码中,$dbexecuteJob 函数中未定义。

$db = new mysqli($db_host, $db_user, $db_pass, $db_name, $db_port);
// set up Gearman worker
$worker = new GearmanWorker();
$worker->addServer();
$worker->addFunction("execute", "executeJob");
while($worker->work());
function executeJob($job) {
    global $db;
    print_r($db); \ UNDEFINED
}

php 手册建议在使用 addFunction 设置工作线程函数时可以传递上下文数据,但我不清楚这是否是我需要的,甚至不清楚如何做到这一点。谢谢!!

是的,上下文数据是您需要的。

$db = new mysqli($db_host, $db_user, $db_pass, $db_name, $db_port);
// set up Gearman worker
$worker = new GearmanWorker();
$worker->addServer();
$worker->addFunction("execute", "executeJob", $db);
while($worker->work());
function executeJob($job, $db) {
    print_r($db);
}

相关内容

  • 没有找到相关文章

最新更新