Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 19.04.2019 14:19:37

Можно ли через очередь Laravel заблокировать отправку частых событий?

Laravel 5.5, очередь на MySQL.

В интерфейсе сайта есть кнопка «Тестовое сообщение». Когда она нажимается, должно запускаться определенное Job-действие, которое помещается в очередь.

Проблема в том, что нужно разрешить отправлять тестовое сообщение не более раз в 10 минут. Однако, когда действие в очереди успешно выполнилось, оно бесследно исчезает из очереди. И никак невозможно проверить, была ли за последние 10 минут отправка сообщения или нет.

Вопрос: есть ли возможность в очереди Laravel отслеживать по таким критериям отправку сообщений? Или нужно просто заводить таблицу, в которой хранить последний момент помещения действия в очередь и сравнивать с ним?

Не в сети

#2 19.04.2019 16:05:45

Re: Можно ли через очередь Laravel заблокировать отправку частых событий?

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


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#3 19.04.2019 16:41:46

Re: Можно ли через очередь Laravel заблокировать отправку частых событий?

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

Да, для каждого посетителя отслеживать отдельно. Авторизация есть.

То есть, все-таки механизмом очереди такое не разрулить, и нужно делать таблицу с запоминанием времени отправки тестового сообщения?

Не в сети

#4 19.04.2019 20:08:44

Re: Можно ли через очередь Laravel заблокировать отправку частых событий?

Да


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

Подвал раздела