echo "#{$server->worker_id} message from #{$src_worker_id}: {$data}\n"; }); $server->on('task', function ($server, $task_id, $from_id, $data) { var_dump($task_id, $from_id, $data); }); $server->on('finish', function ($server, $fd, $from_id) { }); $server->on('receive', function (swoole_server $server, $fd, $from_id, $data) { if (trim($data) == 'task') { $server->task("async task coming"); } else { $worker_id = 1 - $server->worker_id; $server->sendMessage("hello task process", $worker_id); } }); $server->start(); $server = new swoole_server('127.0.0.1', 9501); $process = new swoole_process(function ($process) use($server) { while (true) { $msg = $process->read(); foreach ($server->connections as $conn) { $server->send($conn, $msg); } } }); $server->addProcess($process); $server->on('receive', function ($serv, $fd, $from_id, $data) use($process) { //群发收到的消息 $process->write($data); }); $server->start();
switch ($cmd) { case 'fetch': $crawler_server->task($data, 0); $crawler_server->send($fd, "OK\n"); break; default: echo "error cmd \n"; } }); $crawler_server->on('task', function (swoole_server $crawler_server, $task_id, $from_id, $data) { echo 'task start time--' . date('Y-m-d H:i:s') . "\n"; echo 'tast_id :' . $task_id . "\n"; echo 'client--from_id:' . $from_id . "\n"; $driver = isset($data['driver']) ? $data['driver'] : ''; $method = isset($data['method']) ? $data['method'] : 'fetch'; $object = isset($data['object']) ? unserialize($data['object']) : ''; $class = isset($data['class']) ? $data['class'] : 'Crawl'; if (!$class && !$object || !$method) { $crawler_server->finish("error callback\n"); } if ($object) { call_user_func_array(array($object, $method), array($data['data'], array('driver' => $driver))); } else { call_user_func_array("{$class}::{$method}", array($data['data'], array('driver' => $driver))); } $crawler_server->finish("OK\n"); }); //添加监控进程 $crawler_server->addProcess($crawler_monitor); //server开始 $crawler_server->start();
switch ($cmd) { case 'fetch': $parser_server->task($data, 0); $parser_server->send($fd, "OK\n"); break; default: echo "error cmd \n"; } }); $parser_server->on('task', function (swoole_server $parser_server, $task_id, $from_id, $data) { echo 'task start time--' . date('Y-m-d H:i:s') . "\n"; echo 'tast_id :' . $task_id . "\n"; echo 'client--from_id:' . $from_id . "\n"; $driver = isset($data['driver']) ? $data['driver'] : ''; $method = isset($data['method']) ? $data['method'] : 'fetch'; $object = isset($data['object']) ? unserialize($data['object']) : ''; $class = isset($data['class']) ? $data['class'] : 'Parse'; if (!$class && !$object || !$method) { $crawler_server->finish("error callback\n"); } if ($object) { call_user_func_array(array($object, $method), array($data['data'], array('driver' => $driver))); } else { call_user_func_array("{$class}::{$method}", array($data['data'], array('driver' => $driver))); } $parser_server->finish("OK\n"); }); //添加监控进程 $parser_server->addProcess($parser_monitor); //server启动 $parser_server->start();