Я использовал Beanstalk в производстве, а также во время тестирования пролил через него миллионы простых сообщений - как правило, массово, но в производственной системе было выполнено более 100 000 задач, пока я не покинул компанию. Возможно, он все еще работает, и в этом случае сейчас будут десятки миллионов - или больше, если бы они расширили его использование, как я планировал.
Я бы порекомендовал это, так как у него есть много отличных очков.
- именованные трубы могут быть использованы для ограничения поставляемых заданий. Я смотрю трубу, основанную на имени хоста машины, которая ограничивает место, где будет работать рабочий - полезно для загруженных файлов, которые хранятся только на определенном сервере).
- Задержки могут использоваться для установки будущих событий
- Последние версии сервера также поддерживают ведение журнала bin, что дает постоянство, хотя он никогда не зависал на мне.
Моей первой задачей, которую я поставил перед этим, была обработка изображений - и выполнение этой работы вне процесса Apache / mod_php позволило мне изменить размеры больших изображений, не затрагивая сервер (разрыв веб-сервера). В слегка загруженной очереди он создал миниатюры до того, как страница обновилась после загрузки.
Существует много других потенциальных задач, которые также могут выполняться асинхронно.
Единственные проблемы, с которыми я когда-либо сталкивался, состояли в том, чтобы убедиться, что работники завершили работу без происшествий, или что любые ошибки были обнаружены, так что задание можно было «похоронить», таким образом гарантируя, что задание не было возвращено в очередь для снова запуститься (и снова потерпеть крах).
Перезапуск рабочих для очистки памяти также может быть полезен, так как PHP менее подходит для длительных процессов.