Async Event Dispatcher

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
german.igortcev
Сообщения: 251
Зарегистрирован: 2014.08.18, 14:01

Async Event Dispatcher

Сообщение german.igortcev »

Кто нибудь реализовывал асинхронный вызов событий через сервер очередей? Я имею ввиду вызов методов прикреплённый как слушателей на события который требуют больше времени и ресурсов чем в синхронном режиме
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Async Event Dispatcher

Сообщение samdark »

Да. Какой именно вопрос интересует?
german.igortcev
Сообщения: 251
Зарегистрирован: 2014.08.18, 14:01

Re: Async Event Dispatcher

Сообщение german.igortcev »

Вопрос именно в реализации , не совсем понимаю. Получается что должен быть singleton подключённый как EventDispatcher, и после через Di получаем к нему доступ где нужно. Теория вроде понятна , в с queue реализация немного не ясна. По возможности увидеть бы пример реализации с queue
german.igortcev
Сообщения: 251
Зарегистрирован: 2014.08.18, 14:01

Re: Async Event Dispatcher

Сообщение german.igortcev »

Я хочу использовать встроенные события для общения между различными модулями приложения но обработчики выполнять синхронно будет затратно, спрашиваю тк не могу сообразить как выполнить в фоне именно обработку.

Пример
При добавлении страницы сайта я делаю trigger для события EVENT_SITE_PAGE_CREATED при этом другой модуль подписанный на это событие должен спарить страницу и выдернуть содержимое. Операция затратная по времени и к примеру страница может быть недоступна или парсер заблокировало по request limit.

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

Re: Async Event Dispatcher

Сообщение samdark »

1. Уже есть event handler в Yii.
2. Можно к нему подцепиться и слушать события.
3. По событию ставить Job в queue.
Ответить