169 похожих чатов

Всем привет. Ребята, подскажите пожалуйста новичку в Laravel, есть ли

в нём с коробки готовое решение для отправки и получения событий через Redis? Т.е у меня движок стоит на нескольких серверах, и общее среди них только Redis, хочу что бы когда отправлялось событие оно отрабатывало на всех серверах.

20 ответов

14 просмотров

Новичек, ищи ответ в доке перед тем как задать вопрос https://laravel.com/docs/8.x/redis#pubsub

Так они ищут, но не находят, потому что не знают, что искать

Road-Test Автор вопроса

Т.е варианта кроме как во внутрь Redis::subscribe(['test-channel'], function ($message) { засунуть dispatch(Событие в зависимости от $message) }); с коробки нету?

шта?

Road-Test Автор вопроса

Я выполняю команду php artisan make:event MyEvent и php artisan make:listener MyEventNotification —event=MyEvent Далее я подключаю слушатель в котором пишу что при получении этого события например записывать данные в файл. Далее я вызываю на одном из серверов это событие и хочу что бы после этого на всех серверах с моим скриптом выполнилось это событие и были записаны данные в файл. Могу ли я сделать такую конструкцию стандартными решениями с коробки?

Ну ссылка из доки это и есть из-коробочное решение. Куда еще ”изкоробочней”? Редис pubsub оповещает всех, кто подписался на канал.

Road-Test Автор вопроса

Хотелось бы что бы в разделе документации https://laravel.com/docs/8.x/events было написано что-то типа "Using Events with Redis Pub/Sub" и тогда было бы то что мне нужно )

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

Road-Test Автор вопроса

Спасибо, сейчас изучу

Да, создаешь нотификейшн, в нем конекшн редис. И он пушит эти нотификейшны в pubsub. Но у ивентов будет префмксом весь неймспейс. Я не помню как им управлять. Крч в redis-cli в консольке вбиваешь psubscribe * И увидешь все ивенты, которые были запушены https://laravel.com/docs/8.x/notifications#customizing-the-notification-queue-connection

Road-Test Автор вопроса

Принял, спасибо 😉

я все напутал ахаха) 🤔 https://laravel.com/docs/8.x/broadcasting#broadcast-queue

Road-Test Автор вопроса

😉

Road-Test Автор вопроса

Да, это именно то что я искал, спасибо!

Road-Test Автор вопроса

Почитал, изучил, но не нашел ответа на вопрос, а каким образом мне слушать события, которые broadcast'ятся в redis, что бы по ним запускались обработчики? Т.е не вижу не какой команды типа php artisan broadcast:listen в которой заложен Redis::subscribe который в свою очередь события которые кастяться превращает в объекты Event и запускают их обработку на сервере

подписка - это уже как выше я и скидывал делаешь make:command и внутрь пихаешь Redis::subscribe

Road-Test Автор вопроса

Понял, т.е решение с коробки позволяет только транслировать события в redis, но нет готового решения которое от туда достаёт данные и превращает на сервере обратно в событие вызывая слушатель

а зачем? чтобы оно попало в рекурсию и снова отброадкастила событие?

Ты должен сделать сервис или просто отдельный метод, который реализует обработку события. И вызывать его и в команде с subscribe и в листенере. Т.к. листенер обрабатывает только локальные ивенты.

Road-Test Автор вопроса

Да я это и имел введу )

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта