【问题标题】:How to delete delayed notification in Laravel 5.6 using redis queue如何使用 redis 队列删除 Laravel 5.6 中的延迟通知
【发布时间】:2019-01-30 16:14:37
【问题描述】:

我正在使用带有 redis 队列的 laravel 通知 (https://laravel.com/docs/5.6/notifications)。他们都实现了 ShouldQueue 但只有其中一些必须延迟(提醒)。但是,当我删除与通知相关的对象时,我还需要删除与对象相关的所有通知,包括延迟的通知。没有延迟的很容易,因为我可以简单地从数据库中删除它们,但是延迟的还没有在数据库上,它们仍然只在redis队列中。有没有办法在 redis 触发之前删除延迟通知?

【问题讨论】:

  • 您可以通过在via 方法或NotificationSending 侦听器中构建检查来阻止它们实际发送,而不是删除不再相关的通知。见这篇文章:medium.com/@hotmeteor/…

标签: laravel laravel-5 laravel-queue laravel-notification


【解决方案1】:

当队列在redis中时,你不能做太多删除它的唯一选择是通过cli:

打开 cmd redis-cli 然后运行 ​​FLUSHALL 这将从 redis 中刷新内存中的所有队列。

【讨论】:

  • 问题是,我只需要删除一个预定通知,并保留所有其他通知。有没有可能没有这样的选择?
  • 操作系统是什么?
  • 我正在使用最新的宅基地作为开发环境,所以ubuntu在虚拟机上,本地windows
  • 不,没有办法删除特定队列。遗憾的是上周遇到了这个问题。请接受答案。
  • 我实际上最终将延迟通知移动到数据库队列。这样我就可以为该表添加模型,并删除特定记录。如果有人有解决方案如何为 redis 做到这一点,我非常想听听。
猜你喜欢
  • 1970-01-01
  • 2021-07-12
  • 2021-03-13
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
  • 2018-07-25
  • 2015-09-30
  • 1970-01-01
相关资源
最近更新 更多