Я использую уведомления laravel (https://laravel.com/docs/5.6/notifications ) с очередью Redis. Все они реализуют ShouldQueue, но только некоторые из них нужно отложить (напоминания). Однако, когда я удаляю объект, связанный с уведомлением, мне также необходимо удалить все уведомления, связанные с объектом, включая те, которые были отложены. Это легко для тех, которые не задерживаются, так как я могу просто удалить их из базы данных, но задержанных еще нет в базе данных, они все еще находятся только в очереди redis. Есть ли способ удалить отложенные уведомления из Redis до того, как он сработает?
Как удалить отложенное уведомление в Laravel 5.6 с помощью очереди Redis
Ответы (1)
Когда очередь находится в Redis, вы не можете ничего сделать, единственный способ удалить ее - через cli:
откройте cmd redis-cli
, затем запустите FLUSHALL
, это очистит всю очередь в памяти от redis.
person
Leo
schedule
24.08.2018
Дело в том, что мне нужно удалить только одно запланированное уведомление и оставить все остальные. Возможно ли, что таких вариантов нет?
- person mgnjatovic; 24.08.2018
какая операционная система?
- person Leo; 24.08.2018
Я использую последнюю версию HomeStad для среды разработки, поэтому ubuntu находится на виртуальной машине, локально в окнах
- person mgnjatovic; 24.08.2018
Нет, нет возможности удалить конкретную очередь. к сожалению, эта проблема возникла на прошлой неделе. пожалуйста, примите ответ.
- person Leo; 24.08.2018
На самом деле я переместил отложенные уведомления в очередь базы данных. Таким образом я смог добавить модель для этой таблицы и удалить конкретную запись. Если у кого-то есть решение, как это сделать для Redis, я бы очень хотел его услышать.
- person mgnjatovic; 27.08.2018
via
или черезNotificationSending
прослушиватель. См. Эту статью: medium.com/@hotmeteor/ - person Sygmoral   schedule 02.03.2021