PHP асинхронная обработка с beanstalkd. Вы порекомендовали его?

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

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

Мне нужны некоторые отзывы/комментарии pros-cons, от любого, кто использовал эту lib.

Спасибо,

Ответы

Ответ 1

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

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

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

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

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

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

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