Я написал диспетчер очереди, основанный на pheanstalk (beanstalkd), и я должен решить, какие действия будут проходить через эту систему. Менеджер очереди может отправлять и считывать из трех разных приоритетных трубок: быстрый, средний, медленный.Система очередей для мгновенных действий обратной связи (отдельные действия)
Отличие в приоритете - время выполнения. Действия в быстрой очереди будут иметь большинство рабочих процессов и должны выполняться почти мгновенно после добавления в очередь. Средство будет иметь меньше рабочих и медленнее.
У нас есть массовые действия, которые, без сомнения, пройдут через очередь в средней или медленной полосе. Но у нас также есть отдельные действия на одной записи (состоящей из одного-нескольких быстрых запросов), для которых пользователю потребуется немедленная обратная связь.
Метод начальная не очередь проста:
- Нажмите, чтобы сделать действие, Ajax и ждать ответа, визуальное представление об успехе.
Путь с очередью будет:
- Ajax действие, отправить в очередь, обновить визуальное представление и надеюсь, что система очереди завершения выполнения действия, прежде чем обновлять данные
I может увеличить рабочих для быстрой очереди, чтобы в трубе не было никаких ожидающих действий, но я никогда не смогу гарантировать, что действие будет выполнено до обновления данных.
Каковы некоторые общие решения/шаблоны для этой проблемы? Я бы предпочел запустить все через очередь.