Я знаю, что драйверы очереди Laravel, такие как redis и beanstalkd, и я читал, что вы можете увеличить количество рабочих для beanstalkd и т. Д. Однако я просто не уверен, что эти решения подходят для мой сценарий. Вот что мне нужно;Выполнение асинхронных заданий в фоновом режиме (laravel)
Я слушаю XML-канал через соединение сокета, и данные просто продолжают быстро развиваться. навсегда. Я получаю десятки XML-документов за секунду.
Я прочитал данные из этого сокета по строкам, и как только я доберусь до тега закрытия XML, я отправлю буфер другому анализируемому процессу. Я просто кодировал xml в base64 и запускал отдельный процесс php для каждого xml. shell_exec('php parse.php' . $base64XML);
Это позволило мне быстро разобрать эти бесконечные xml-данные. Вид ручного нарезания резьбы. Теперь я хотел бы использовать те же функции с Laravel, но мне интересно, есть ли лучший способ сделать это. Я считаю, что Artisan :: call ('command') не выводит его на задний план. Конечно, я мог бы сделать shell_exec в Laravel, но я хотел бы знать, могу ли я извлечь выгоду из Beanstalkd или аналогичного решения.
Итак, настоящий вопрос: Как установить количество рабочих очередей для beanstalkd или redis драйверов? Как и 20 потоков, работающих одновременно. Больше, если это возможно.
Немного менее важный вопрос: Сколько потоков слишком много? Если бы у меня был высокопроизводительный выделенный сервер, который мог бы обрабатывать нагрузку просто отлично, создало бы 500 потоков/рабочих с помощью этих инструментов, чтобы вызвать какие-либо проблемы на уровне кода?
Большое спасибо за вашу помощь, но, честно говоря, я действительно хочу знать, как установить количество рабочих, которые могут работать в одно и то же время. –
Работник базовый экземпляр php, выполняющий команду php artisan queue: слушайте, как указано здесь: http://laravel.com/docs/5.1/queues#running-the-queue-listener Если вы используете только одну команду, один рабочий, если вы запустите два, у вас есть два работника и т. д. ... Я рекомендую что-то вроде Супервизора или Формана, чтобы управлять тем количеством процессов, которые вы создаете. – Atrakeur