Yii Queue (Очереди)

Обсуждаем, как правильно строить приложения
Ответить
gambitd
Сообщения: 4
Зарегистрирован: 2019.01.30, 13:30

Yii Queue (Очереди)

Сообщение gambitd »

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

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

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

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

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

Подскажите пожалуйста как быть в этой ситуации? Возможно нужно как-то манипулировать приоритетами, или создавать Воркера динамически под каждого пользователя или я уже хз что придумать...
Или организовать другую архитектуру?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

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

Сообщение ElisDN »

Какой драйвер используете? File? Redis? RabbitMQ?
gambitd
Сообщения: 4
Зарегистрирован: 2019.01.30, 13:30

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

Сообщение gambitd »

По началу решил использовать DB драйвер. Изза относительно не сложного дебага и Retryable Jobs. Затем планирую мигрировать на что-то посерьезней Я так понимаю база не сильно производительна в этом плане, да и влияет на общую загрузку проекта
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

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

Сообщение ElisDN »

Замените на Redis или Rabbit и повторов не будет.
gambitd
Сообщения: 4
Зарегистрирован: 2019.01.30, 13:30

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

Сообщение gambitd »

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

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

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

В чем профит использования той или иной системы управления сообщениями из вашего личного опыта?
voodooism
Сообщения: 48
Зарегистрирован: 2018.11.12, 10:29

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

Сообщение voodooism »

Жаль, что Дмитрий не ответил на этот вопрос. Надеюсь он(или кто либо другой) увидит что тема обновилось и напишет ответ :)
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

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

Сообщение Loveorigami »

У разработчика расширения есть монитор
https://github.com/zhuravljov/yii2-queue-monitor
Ответить