gearman
作者QQ:67065435 QQ群:669756510
本站内容全部为作者原创,转载请注明出处!
基础用法
client代码 src/CommandBundle/Command/ClientCommand.php
<?php $workload = json_encode([ 'user_id' => 1, 'user_name' => '张三', 'user_time' => sprintf('%.4f', microtime(true)), ],JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES); $work_name = 'work_name'; $client = new \GearmanClient(); $client->addServer('127.0.0.1', 4730); $client->doBackground($work_name, $workload);worker代码 src/CommandBundle/Command/WorkerCommand.php
<?php $work_name = 'work_name'; $worker = new \GearmanWorker(); $worker->addServer('127.0.0.1', 4730); $worker->addFunction($work_name, "doWork"); while ($worker->work()) { if ($worker->returnCode() != GEARMAN_SUCCESS) { break; } } function doWork($work) { $parameter = $work->workload(); echo $parameter . PHP_EOL; }
任务管理
安装gearman管理包
composer require brianlmoon/net_gearman # 或者修改 "require": { "brianlmoon/net_gearman": "dev-master" } composer update编辑代码
<?php use Net_Gearman_Manager; $gearman_manager = new Net_Gearman_Manager('127.0.0.1'); $status = $gearman_manager->status(); $gearman_manager->disconnect(); unset($gearman_manager); print_r($status);