Как удалить отложенное уведомление в Laravel 5.6 с помощью очереди Redis

Я использую уведомления laravel (https://laravel.com/docs/5.6/notifications ) с очередью Redis. Все они реализуют ShouldQueue, но только некоторые из них нужно отложить (напоминания). Однако, когда я удаляю объект, связанный с уведомлением, мне также необходимо удалить все уведомления, связанные с объектом, включая те, которые были отложены. Это легко для тех, которые не задерживаются, так как я могу просто удалить их из базы данных, но задержанных еще нет в базе данных, они все еще находятся только в очереди redis. Есть ли способ удалить отложенные уведомления из Redis до того, как он сработает?


person mgnjatovic    schedule 24.08.2018    source источник
comment
Вместо удаления уведомлений, которые больше не актуальны, вы можете предотвратить их фактическую отправку, встроив проверку в метод via или через NotificationSending прослушиватель. См. Эту статью: medium.com/@hotmeteor/   -  person Sygmoral    schedule 02.03.2021


Ответы (1)


Когда очередь находится в Redis, вы не можете ничего сделать, единственный способ удалить ее - через cli:

откройте cmd redis-cli, затем запустите FLUSHALL, это очистит всю очередь в памяти от redis.

person Leo    schedule 24.08.2018
comment
Дело в том, что мне нужно удалить только одно запланированное уведомление и оставить все остальные. Возможно ли, что таких вариантов нет? - person mgnjatovic; 24.08.2018
comment
какая операционная система? - person Leo; 24.08.2018
comment
Я использую последнюю версию HomeStad для среды разработки, поэтому ubuntu находится на виртуальной машине, локально в окнах - person mgnjatovic; 24.08.2018
comment
Нет, нет возможности удалить конкретную очередь. к сожалению, эта проблема возникла на прошлой неделе. пожалуйста, примите ответ. - person Leo; 24.08.2018
comment
На самом деле я переместил отложенные уведомления в очередь базы данных. Таким образом я смог добавить модель для этой таблицы и удалить конкретную запись. Если у кого-то есть решение, как это сделать для Redis, я бы очень хотел его услышать. - person mgnjatovic; 27.08.2018