Я пытаюсь ускорить работу процесс, портируя его на OpenSwoole, и я провел большую часть сегодняшнего дня, пытаясь разобраться в этом, но мне очень трудно разобраться в документах, поскольку нет никаких примеров, похожих на мой вариант использования.
Я использую библиотеку beanstalkd, совместимую с OpenSwoole:
https://github.com/xpader/swbeanstalk/blob/master/ example/test.php
со строкой $scheduler->add('coJobProducer'); закомментировали и добавили следующий код:
Код: Выделить всё
// Start a new UDP server on 12.0.0.1, listening on port 9502
$server = new OpenSwoole\Server('127.0.0.1', 9502, OpenSwoole\Server::POOL_MODE, OpenSwoole\Constant::SOCK_UDP);
// Get connection to beanstalk
$client = getConnection();
$client->useTube('test');
// Setup the incoming data event callback, called 'Packet'
$server->on('Packet', function ($server, $data, $clientInfo) {
global $client;
$ret = $client->put($data);
});
// Start the server and begin accepting incoming requests
$server->start();
В идеале я Мне хотелось бы расширить функцию обратного вызова $server->on(), чтобы она выполняла больше обработки, но для этого мне нужно передать довольно много экземпляров классов, переменных и т. д.
Подробнее здесь: https://stackoverflow.com/questions/789 ... k-function
Мобильная версия