Очереди в Yii2

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

Очереди в Yii2

Сообщение New_Wind » 2016.09.25, 16:35

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

Работал с ларавелем, там очереди работают из коробки, а как с этим обстоят дела в 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 » 2016.09.25, 16:57

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

Аватара пользователя
shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Украина Днепропетровск

Re: Очереди в Yii2

Сообщение shkarbatov » 2016.09.27, 13:09

Я работаю с очередями через RabbitMQ, есть библиотека от videlalvaro
https://www.rabbitmq.com/getstarted.html
Stay hungry, stay foolish.

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

Re: Очереди в Yii2

Сообщение samdark » 2016.09.28, 17:04

Это не завершённая заготовка. Пока все используют стороннее.

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

Re: Очереди в Yii2

Сообщение New_Wind » 2016.09.28, 17:17

Да, спасибо, я уже пощупал https://github.com/urbanindo/yii2-queue и https://github.com/wayhood/yii2-queue

Аватара пользователя
girmate
Сообщения: 1533
Зарегистрирован: 2015.10.27, 12:52

Re: Очереди в Yii2

Сообщение girmate » 2016.09.28, 20:57

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

Аватара пользователя
ElisDN
Сообщения: 5399
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Очереди в Yii2

Сообщение ElisDN » 2016.09.28, 21:24

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

waki
Сообщения: 1
Зарегистрирован: 2016.12.27, 07:57

Re: Очереди в Yii2

Сообщение waki » 2017.04.16, 08:05

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

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

Re: Очереди в Yii2

Сообщение KiTE » 2017.04.18, 22:08

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

Хотелось бы уточнить на счет отложенных заданий. Эта функциональность зависит от возможностей брокера очереди, поэтому для RabbitMQ и Gearman она недоступна.

Аватара пользователя
Йож
Сообщения: 571
Зарегистрирован: 2015.08.26, 03:05

Re: Очереди в Yii2

Сообщение Йож » 2017.04.20, 01:46

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, 14:15

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

Спасибо :roll:
Спасибо за найденный баг. Исправил.

Аватара пользователя
Йож
Сообщения: 571
Зарегистрирован: 2015.08.26, 03:05

Re: Очереди в Yii2

Сообщение Йож » 2017.04.20, 19:25

KiTE писал(а):
2017.04.20, 14:15
Спасибо за найденный баг. Исправил.
И Вам спасибо ;)

ultrasport
Сообщения: 3
Зарегистрирован: 2016.08.09, 17:20

Re: Очереди в Yii2

Сообщение ultrasport » 2017.05.03, 18:08

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 » 2017.05.03, 19:13

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 » 2017.05.04, 10:08

KiTE писал(а):
2017.05.03, 19:13

Команды регистрируются автоматически если вы добавили компонент в секцию bootstrap, а командный контроллер лежит в коде пакета.
В документации есть пример типового конфига.
Благодарю, не сразу понял что надо прописывать в /config/console.php, вместо /config/web.php

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

Re: Очереди в Yii2

Сообщение KiTE » 2017.05.04, 12:34

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

Mirocow
Сообщения: 52
Зарегистрирован: 2011.12.05, 20:01
Контактная информация:

Re: Очереди в Yii2

Сообщение Mirocow » 2017.06.12, 02:16

Пипл привет.
Наконец-то дошли руки до 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
Администратор
Сообщения: 9171
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Очереди в Yii2

Сообщение samdark » 2017.06.20, 21:12

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

louisvuitton
Сообщения: 196
Зарегистрирован: 2014.02.16, 03:09

Re: Очереди в Yii2

Сообщение louisvuitton » 2018.11.30, 17:10

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

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

Re: Очереди в Yii2

Сообщение New_Wind » 2018.11.30, 17:29

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

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

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

Ответить