PHP асинхронная обработка с beanstalkd. Вы рекомендуете это? - PullRequest
13 голосов
/ 24 октября 2009

вы бы порекомендовали использовать beanstalkd [http://kr.github.com/beanstalkd/] для

асинхронная обработка в PHP?

Мне нужны плюсы и отзывы от всех, кто использовал эту библиотеку.

Спасибо

1 Ответ

15 голосов
/ 24 октября 2009

Я использовал Beanstalk в производстве, а также во время тестирования пролил через него миллионы простых сообщений - как правило, массово, но в производственной системе было выполнено более 100 000 задач, пока я не покинул компанию. Возможно, он все еще работает, и в этом случае сейчас будут десятки миллионов - или больше, если бы они расширили его использование, как я планировал.

Я бы порекомендовал это, так как у него есть много отличных очков.

  • именованные трубы могут быть использованы для ограничения поставляемых заданий. Я смотрю трубу, основанную на имени хоста машины, которая ограничивает место, где будет работать рабочий - полезно для загруженных файлов, которые хранятся только на определенном сервере).
  • Задержки могут использоваться для установки будущих событий
  • Последние версии сервера также поддерживают ведение журнала bin, что дает постоянство, хотя он никогда не зависал на мне.

Моей первой задачей, которую я поставил перед этим, была обработка изображений - и выполнение этой работы вне процесса Apache / mod_php позволило мне изменить размеры больших изображений, не затрагивая сервер (разрыв веб-сервера). В слегка загруженной очереди он создал миниатюры до того, как страница обновилась после загрузки.

Существует много других потенциальных задач, которые также могут выполняться асинхронно.

Единственные проблемы, с которыми я когда-либо сталкивался, состояли в том, чтобы убедиться, что работники завершили работу без происшествий, или что любые ошибки были обнаружены, так что задание можно было «похоронить», таким образом гарантируя, что задание не было возвращено в очередь для снова запуститься (и снова потерпеть крах).

Перезапуск рабочих для очистки памяти также может быть полезен, так как PHP менее подходит для длительных процессов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...