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