я ищу для системы массового обслуживания, которая может поддерживать следующий сценарий:система массового обслуживания, которая поддерживает работу пакетирование (например, несколько рабочих мест для 1 работника сразу)
- клиент добавляет задание - проверить, как многим Facebook нравится конкретный URL (URL1);
- Клиент добавляет другую работу - для проверки той же информации для URL2;
[....]
Работник поднимает что-нибудь от 1 до 50 рабочих мест (URLs) из очереди (например, если есть только 5 - он улавливает 5, если есть 60 - подхватывает 50, оставляя других для другого работника) и выдает запрос против API Facebook (который позволяет несколько URL-адресов на запрос). Если это удается, все задания выводятся из очереди, если они терпят неудачу - все они остаются.
Я работаю с PHP, и я посмотрел в Gearman, Beanstalkd, но не нашел подобную функциональность. Есть ли (бесплатная) система очередей, которая поддерживала бы такой «пакетный режим»?
Возможно, любой может предложить альтернативный способ решения такой проблемы? Я рассмотрел список «проверять» URL-адреса вне системы очередей, а затем добавлял их в пакеты из макс. N элементов с заданием cron, которое запускает каждый период Х. Но это своего рода построение собственной очереди, которая побеждает целую цель, не так ли?
Это не самый чистый способ сделать это, но я думаю, что с помощью Beanstalk у вас может быть один рабочий, пытающийся получить несколько заданий (просто используйте цикл). – trutheality
@trutheality Я обязательно посмотрю - пока не нашел никого, кто упоминает такую возможность:/ – Aurimas
@Aurimas, Как вы решили эту проблему с помощью gearman? – Suriya