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