Пример #1
0
    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();
Пример #2
0
    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();
Пример #3
0
    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();