Intereting Posts
Как получить данные utf-8 с помощью php и показать правильную кодировку в dump-файле excelsheet? Лучший способ получить карту всех пикселей изображения с помощью GD Кросс-браузер cookie в php. Передача файлов cookie между разными браузерами php session заканчивается случайным образом через несколько минут Симулятор Paypal IPN непоследовательно работает Не знаю, как решить (между Php и Javascript) Порт 80 заблокирован на cpanel из-за вредоносного файла phpunit eval-stdin.php Как добавить пользовательское слово на мой доменный URL для каждого запроса? проблема с сохранением файла xml с помощью curl и php Как вы разрешаете клиентам использовать свой openid на вашем веб-сайте, как и stackoverflow? PHP вытащить случайное изображение из папки OSX: PHP Ошибка локального хоста и невозможность загрузки динамической библиотеки org.json.JSONException: Значение <br типа java.lang.String не может быть преобразовано в JSONObject Получение данных с другого веб-сайта с помощью php Как извлечь определенную строку (электронную почту) из файла через php

Что такое хорошие распределенные диспетчера очереди в php?

Я работаю над веб-сайтом обработки изображений, вместо того чтобы иметь длительные задания, задерживать браузер пользователей. Я хочу, чтобы все команды быстро возвращались с идентификатором задания и выполняли фоновые задачи. Затем идентификатор можно было использовать для проверки состояния и результатов (т. Е. URL-адреса обработанного изображения). Я нашел много распределенных менеджеров очереди для ruby, java и python, но я не знаю почти любого из этих языков, чтобы иметь возможность использовать их.

Мои собственные тесты были с общей базой данных mysql для работы в очереди, блокировки их для рабочего и пометки их как завершенных (сохранение возвращаемых данных в db). Это был просто грязный прототип, и все время я чувствовал, что я изобретаю колесо (и не очень изящно). Есть ли что-то в php (или я могу поговорить с RESTfully?), Что я мог бы использовать?

Читая немного больше, я обнаружил, что то, что я ищу, это система очередей, в которой есть php api, ее не нужно писать на php. Я только нашел классы для использования с SQS от Amazon, но не только это не бесплатно, но и довольно скрыто (более минуты, чтобы сообщение появилось).

Вы пробовали ActiveMQ? В нем упоминается поддержка PHP через протокол Stomp. Подробности доступны на сайте activemq .

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

У вас есть полный контроль над сервером?

В этом случае очередь MySQL может быть прекрасной. У вас есть PHP-скрипт, который работает постоянно (в бесконечном цикле while), запрашивая базу данных MySQL для новых «задач» и sleep () между ними, чтобы уменьшить нагрузку во время простоя.

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

Чтобы предотвратить остановку всего этого файла, если ваш сценарий выйдет из строя / существует (переполнение памяти PHP и т. Д.), Вы можете, например, поместить его в inittab (если вы используете Linux в качестве сервера), и init перезапустит его автоматически.

Zend_Framework имеет класс очереди с несколькими реализациями Mysql-backed, SQS и некоторых других back-end.

Лично у меня недавно были отличные результаты с BeanstalkD , у которого также есть клиент PHP. Я просто сериализую некоторые данные с JSON, чтобы бросить в него, который декодируется и запускается на рабочих (-ов).