Добрый день. Недавно эволюционировал от CRON до работы с Linux Workers.
Установил расширение yiisoft/yii2-queue все настроил - все работает.
Но с повышением нагрузки потребовалось запустить несколько Рабочих для одной очереди. И здесь начались проблемы: процессы стали конфликтовать между собой и выкидывать ошибки.
Сейчас использую Supervisor для менеджмента процессов и запускаю по 3 процесса на очередь. и DB драйвер для Yii компонента.
Суть моих Рабочих: конвертация файлов, загрузка на облако, удаление файлов и т.д.
Пробовал следующее:
1. записывать в таблицу queue время старта. и в Queue::beforeExec проверять не взял ли паралельный процесс это задание
2. в самих Job-классах писал кучу проверок типа file_exists, ActiveRecord->exists() и т.д.
это минимизировало ошибки но они всеравно выбрасываються в связи с параллельным выполнением. тобишь система не стабильна
Подскажите пожалуйста как быть в этой ситуации? Возможно нужно как-то манипулировать приоритетами, или создавать Воркера динамически под каждого пользователя или я уже хз что придумать...
Или организовать другую архитектуру?
Yii Queue (Очереди)
Re: Yii Queue (Очереди)
Какой драйвер используете? File? Redis? RabbitMQ?
Re: Yii Queue (Очереди)
По началу решил использовать DB драйвер. Изза относительно не сложного дебага и Retryable Jobs. Затем планирую мигрировать на что-то посерьезней Я так понимаю база не сильно производительна в этом плане, да и влияет на общую загрузку проекта
Re: Yii Queue (Очереди)
Замените на Redis или Rabbit и повторов не будет.
Re: Yii Queue (Очереди)
Спасибо, в этих системах также можно хэндлить упавшие задачи как и БД? В БД все наглядно, а там есть инструменты для визуализации?
боюсь всяких ограничений и потерять контроль над бэкграунд тасками ...
Если не сложно можете посоветовать годную литературу по использованию этих систем.
В чем профит использования той или иной системы управления сообщениями из вашего личного опыта?
боюсь всяких ограничений и потерять контроль над бэкграунд тасками ...
Если не сложно можете посоветовать годную литературу по использованию этих систем.
В чем профит использования той или иной системы управления сообщениями из вашего личного опыта?
Re: Yii Queue (Очереди)
Жаль, что Дмитрий не ответил на этот вопрос. Надеюсь он(или кто либо другой) увидит что тема обновилось и напишет ответ
-
- Сообщения: 977
- Зарегистрирован: 2014.08.27, 21:54
Re: Yii Queue (Очереди)
У разработчика расширения есть монитор
https://github.com/zhuravljov/yii2-queue-monitor
https://github.com/zhuravljov/yii2-queue-monitor