Страница 1 из 1

Yii Queue (Очереди)

Добавлено: 2019.01.30, 13:46
gambitd
Добрый день. Недавно эволюционировал от CRON до работы с Linux Workers.

Установил расширение yiisoft/yii2-queue все настроил - все работает.
Но с повышением нагрузки потребовалось запустить несколько Рабочих для одной очереди. И здесь начались проблемы: процессы стали конфликтовать между собой и выкидывать ошибки.

Сейчас использую Supervisor для менеджмента процессов и запускаю по 3 процесса на очередь. и DB драйвер для Yii компонента.
Суть моих Рабочих: конвертация файлов, загрузка на облако, удаление файлов и т.д.

Пробовал следующее:
1. записывать в таблицу queue время старта. и в Queue::beforeExec проверять не взял ли паралельный процесс это задание
2. в самих Job-классах писал кучу проверок типа file_exists, ActiveRecord->exists() и т.д.

это минимизировало ошибки но они всеравно выбрасываються в связи с параллельным выполнением. тобишь система не стабильна

Подскажите пожалуйста как быть в этой ситуации? Возможно нужно как-то манипулировать приоритетами, или создавать Воркера динамически под каждого пользователя или я уже хз что придумать...
Или организовать другую архитектуру?

Re: Yii Queue (Очереди)

Добавлено: 2019.01.30, 21:19
ElisDN
Какой драйвер используете? File? Redis? RabbitMQ?

Re: Yii Queue (Очереди)

Добавлено: 2019.01.31, 08:17
gambitd
По началу решил использовать DB драйвер. Изза относительно не сложного дебага и Retryable Jobs. Затем планирую мигрировать на что-то посерьезней Я так понимаю база не сильно производительна в этом плане, да и влияет на общую загрузку проекта

Re: Yii Queue (Очереди)

Добавлено: 2019.01.31, 10:51
ElisDN
Замените на Redis или Rabbit и повторов не будет.

Re: Yii Queue (Очереди)

Добавлено: 2019.01.31, 11:09
gambitd
Спасибо, в этих системах также можно хэндлить упавшие задачи как и БД? В БД все наглядно, а там есть инструменты для визуализации?

боюсь всяких ограничений и потерять контроль над бэкграунд тасками ...

Если не сложно можете посоветовать годную литературу по использованию этих систем.

В чем профит использования той или иной системы управления сообщениями из вашего личного опыта?

Re: Yii Queue (Очереди)

Добавлено: 2019.07.14, 21:27
voodooism
Жаль, что Дмитрий не ответил на этот вопрос. Надеюсь он(или кто либо другой) увидит что тема обновилось и напишет ответ :)

Re: Yii Queue (Очереди)

Добавлено: 2019.07.14, 22:13
Loveorigami
У разработчика расширения есть монитор
https://github.com/zhuravljov/yii2-queue-monitor