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