Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Laravel 5.5, очередь на MySQL.
В интерфейсе сайта есть кнопка «Тестовое сообщение». Когда она нажимается, должно запускаться определенное Job-действие, которое помещается в очередь.
Проблема в том, что нужно разрешить отправлять тестовое сообщение не более раз в 10 минут. Однако, когда действие в очереди успешно выполнилось, оно бесследно исчезает из очереди. И никак невозможно проверить, была ли за последние 10 минут отправка сообщения или нет.
Вопрос: есть ли возможность в очереди Laravel отслеживать по таким критериям отправку сообщений? Или нужно просто заводить таблицу, в которой хранить последний момент помещения действия в очередь и сравнивать с ним?
Не в сети
Нюанс: на сайте может быть сколько угодно посетителей. Ограничение должно применяться для сообщений "вообще" или для каждого пользователя. Во втором случае надо, вероятно, ввести авторизацию и сохранять время в привязке к пользователю.
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Нюанс: на сайте может быть сколько угодно посетителей. Ограничение должно применяться для сообщений "вообще" или для каждого пользователя. Во втором случае надо, вероятно, ввести авторизацию и сохранять время в привязке к пользователю.
Да, для каждого посетителя отслеживать отдельно. Авторизация есть.
То есть, все-таки механизмом очереди такое не разрулить, и нужно делать таблицу с запоминанием времени отправки тестового сообщения?
Не в сети
Да
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети