Есть крупный проект. До какого-то времени очереди хранились в БД MySQL, но сейчас в очереди пишутся такие объемы данных, что БД лочится, собственно, от одних очередей. Чтобы было понятнее - речь идет о миллионах записей. Каждую минуту/декаминуту/час/день добавляются или удаляются тысячи записей.
Я начал переходить на Gearman, перевел небольшую часть проекта на него, но сейчас мне кажется, что это было не правильным решением. Вот мои основные претензии:
- Три уровня приоритезации, которые предоставляет Gearman, все таки, не хватает. В некоторых очередях у нас доходило до 10 уровней.
- Самая большая для меня проблема - дублирующиеся задачи. В гирмен можно напихать сколько угодно однотипных, одинаковых задач, при чем, даже с одинаковым ID! В последнем случае, правда, при выполнении одной из задач с одинаковым ID сразу «выполняются» и все остальные задачи с таким же ID, но все равно, это не подходит, т.к. таких задач может скопиться десятки тысяч.
Это мои основные проблемы, остальное, в общем-то, не критично.
Короче, мои основные требования к серверу очередей:
- Возможность работать из PHP
- Гибкая настройка приоритезации
- Задачи должны быть только уникальные
Что можете посоветовать?