Очереди в Yii2

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Аватара пользователя
New_Wind
Сообщения: 55
Зарегистрирован: 2015.03.09, 15:15
Контактная информация:

Очереди в Yii2

Сообщение New_Wind »

Привет народ пхпшный!

Работал с ларавелем, там очереди работают из коробки, а как с этим обстоят дела в Yii2?
Насколько работоспособен https://github.com/yiisoft/yii2-queue ? Смотрю, что там только драйвер под Redis и SQS, но нет для Gearman/Beanstalk/RabbitMQ/DB. Или для разных серверов - разные драйвера искать?

Я пока еще не выбрал сервер очередей. Мне надо что-то для небольших нагрузок - около 1000 заданий в час (рассылки, получение и обработка данных через REST API, и т.д.).
Посоветуйте пожалуйста сервер для локального использования, а так же стабильный драйвер к нему для Yii2.

Спасибо.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Очереди в Yii2

Сообщение zelenin »

https://github.com/yiisoft/yii2-queue/b ... sQueue.php
как видите реализация драйвера очень проста. для 1000 заданий в час подойдет что угодно. чтобы не ставить доп. ПО можно реализовать бд-драйвер. если загуглить, думаю уже будет готовая реализация
shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Re: Очереди в Yii2

Сообщение shkarbatov »

Я работаю с очередями через RabbitMQ, есть библиотека от videlalvaro
https://www.rabbitmq.com/getstarted.html
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Очереди в Yii2

Сообщение samdark »

Это не завершённая заготовка. Пока все используют стороннее.
Аватара пользователя
New_Wind
Сообщения: 55
Зарегистрирован: 2015.03.09, 15:15
Контактная информация:

Re: Очереди в Yii2

Сообщение New_Wind »

Да, спасибо, я уже пощупал https://github.com/urbanindo/yii2-queue и https://github.com/wayhood/yii2-queue
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Очереди в Yii2

Сообщение girmate »

Разъясните пожалуйста, что за очереди такие и с чем их едят, когда это может быть полезно. Ни разу не сталкивался, наверное. Спасибо.
Осторожно! Вы общаетесь с новичком ;)
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Очереди в Yii2

Сообщение ElisDN »

girmate писал(а):Разъясните пожалуйста, что за очереди такие и с чем их едят, когда это может быть полезно. Ни разу не сталкивался, наверное. Спасибо.
Очереди задач - это альтернатива cron для запуска фоновых процессов вроде рассылок писем, перерасчёта цен и т.п.
waki
Сообщения: 1
Зарегистрирован: 2016.12.27, 07:57

Re: Очереди в Yii2

Сообщение waki »

Из всех опробованных, считаю лучшей на данный момент https://github.com/zhuravljov/yii2-queue
Библиотека относительно новая, но присутствует необходимый функционал: возможность создать несколько очередей, отправлять в очередь отложенные задания, может работать с DB, Redis, RabbitMQ, Beanstalk и Gearman.
Аватара пользователя
KiTE
Сообщения: 112
Зарегистрирован: 2012.04.12, 14:47

Re: Очереди в Yii2

Сообщение KiTE »

waki писал(а): 2017.04.16, 08:05 Из всех опробованных, считаю лучшей на данный момент https://github.com/zhuravljov/yii2-queue
Библиотека относительно новая, но присутствует необходимый функционал: возможность создать несколько очередей, отправлять в очередь отложенные задания, может работать с DB, Redis, RabbitMQ, Beanstalk и Gearman.
Спасибо за положительный отзыв.

Хотелось бы уточнить на счет отложенных заданий. Эта функциональность зависит от возможностей брокера очереди, поэтому для RabbitMQ и Gearman она недоступна.
Аватара пользователя
Йож
Сообщения: 574
Зарегистрирован: 2015.08.26, 03:05

Re: Очереди в Yii2

Сообщение Йож »

KiTE писал(а): 2017.04.18, 22:08 Спасибо за положительный отзыв.
Доброго времени суток!
Обратите, пожалуйста, внимание вот на это ишью:
https://github.com/zhuravljov/yii2-queue/issues/37

Спасибо :roll:
Аватара пользователя
KiTE
Сообщения: 112
Зарегистрирован: 2012.04.12, 14:47

Re: Очереди в Yii2

Сообщение KiTE »

Йож писал(а): 2017.04.20, 01:46 Доброго времени суток!
Обратите, пожалуйста, внимание вот на это ишью:
https://github.com/zhuravljov/yii2-queue/issues/37

Спасибо :roll:
Спасибо за найденный баг. Исправил.
Аватара пользователя
Йож
Сообщения: 574
Зарегистрирован: 2015.08.26, 03:05

Re: Очереди в Yii2

Сообщение Йож »

KiTE писал(а): 2017.04.20, 14:15 Спасибо за найденный баг. Исправил.
И Вам спасибо ;)
ultrasport
Сообщения: 3
Зарегистрирован: 2016.08.09, 17:20

Re: Очереди в Yii2

Сообщение ultrasport »

KiTE писал(а): 2017.04.20, 14:15
Йож писал(а): 2017.04.20, 01:46 Доброго времени суток!
Обратите, пожалуйста, внимание вот на это ишью:
https://github.com/zhuravljov/yii2-queue/issues/37

Спасибо :roll:
Спасибо за найденный баг. Исправил.
Могу я спросить вас как работает консольный запуск команд.
Использую yii2 basic, на openServer, установил через композер, использую конфигурацию db queue, в таблице появляются задания, но в папке \commands нет консольных команд и при запуске
yii queue/info Error: Unknown command "queue/info".

Нужно ли что то прописывать в urlManager ?
Аватара пользователя
KiTE
Сообщения: 112
Зарегистрирован: 2012.04.12, 14:47

Re: Очереди в Yii2

Сообщение KiTE »

ultrasport писал(а): 2017.05.03, 18:08 Могу я спросить вас как работает консольный запуск команд.
Использую yii2 basic, на openServer, установил через композер, использую конфигурацию db queue, в таблице появляются задания, но в папке \commands нет консольных команд и при запуске
yii queue/info Error: Unknown command "queue/info".
Команды регистрируются автоматически если вы добавили компонент в секцию bootstrap, а командный контроллер лежит в коде пакета.
В документации есть пример типового конфига.
Нужно ли что то прописывать в urlManager ?
Нет, urlManager к очереди отношения не имеет.
ultrasport
Сообщения: 3
Зарегистрирован: 2016.08.09, 17:20

Re: Очереди в Yii2

Сообщение ultrasport »

KiTE писал(а): 2017.05.03, 19:13
Команды регистрируются автоматически если вы добавили компонент в секцию bootstrap, а командный контроллер лежит в коде пакета.
В документации есть пример типового конфига.
Благодарю, не сразу понял что надо прописывать в /config/console.php, вместо /config/web.php
Аватара пользователя
KiTE
Сообщения: 112
Зарегистрирован: 2012.04.12, 14:47

Re: Очереди в Yii2

Сообщение KiTE »

Подумайте сами. Для чего чаще всего нужны очереди? Чтобы разгрузить веб-процесс переносом всех тяжелых операций в отдельные процессы, и отдать пользователю ответ как можно быстрее. То есть, queue должен быть общим компонентом для всего проекта. Из веба вы ставите задачи в очередь, а консольным процессом их выполняете.
Mirocow
Сообщения: 52
Зарегистрирован: 2011.12.05, 20:01
Контактная информация:

Re: Очереди в Yii2

Сообщение Mirocow »

Пипл привет.
Наконец-то дошли руки до https://github.com/Mirocow/yii2-queue
Сейчас не мной запилен движок на Mysql
Я же запилю остальные движки и исправлю ряд проблем.
Жду ваших отзывов
Ищу работу: viewtopic.php?f=31&t=50584
GitHub: https://github.com/mirocow

Стоимость работ: от $30 час

тел/vbr/wsp: +7 (925) 514-63-53
skype/tlgrm: Mirocow
email: mr.mirocow@gmail.com

PHP Senior Developer aka Mirocow
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Очереди в Yii2

Сообщение samdark »

Думаю, лучше пустить все наработки в одно русло. Русло на данный момент — https://github.com/zhuravljov/yii2-queue/. Фатальных недостатков я там не нашёл...
louisvuitton
Сообщения: 203
Зарегистрирован: 2014.02.16, 03:09

Re: Очереди в Yii2

Сообщение louisvuitton »

ElisDN писал(а): 2016.09.28, 21:24 Очереди задач - это альтернатива cron для запуска фоновых процессов вроде рассылок писем, перерасчёта цен и т.п.
А в чем преимущество этих очередей перед консольными командами и запуском их по крону?
Опишите плз задачу, которая требует очереди
Аватара пользователя
New_Wind
Сообщения: 55
Зарегистрирован: 2015.03.09, 15:15
Контактная информация:

Re: Очереди в Yii2

Сообщение New_Wind »

louisvuitton писал(а): 2018.11.30, 17:10 А в чем преимущество этих очередей перед консольными командами и запуском их по крону?
Опишите плз задачу, которая требует очереди
Очереди помогают освободить процесс от тяжести, но при этом не откладывать нужные задачи на потом.

Например. Регистрируется пользователь в системе. Надо отправить ряд писем о регистрации: ему самому, администраторам, модераторам, надо подготовить для него дашборд с какими-то входными данными, пересчитать доступы.

В маленьких системах это делают в контроллере регистрации, когда после регистрации выполняют нужные действия, а потом показывают пользователю результирующую страницу. Но если действий много, то процесс регистрации затягивается (тем более если в процессе участвуют сторонние сервисы, с непредсказуемыми каналами связи), и пользователь ждет страницу долго.
Вот для того, чтобы пользователю показать результат быстро, но при этом не откладывая на потом продолжить выполнение связанных процессов, все эти сопреженные процессы отправляются в очереди.
Ответить