laravel - 如何在 Laravel 或 Redis 中取消排队的作业

标签 laravel redis queue delay jobs

我如何浏览我的 Redis 队列中所有待处理的作业,以便我可以取消具有特定 emailAddress-sendTime 对的 Mailable?

我正在使用 Laravel 5.5 并且有一个我正在成功使用的 Mailable,如下所示:

$sendTime = Carbon::now()->addHours(3);
Mail::to($emailAddress)
      ->bcc([config('mail.supportTeam.address'), config('mail.main.address')])
                    ->later($sendTime, new MyCustomMailable($subject, $dataForMailView));

当这段代码运行时,一个作业被添加到我的 Redis 队列中。

我已经阅读了 Laravel docs但仍然感到困惑。

如何取消 Mailable(阻止它发送)?

我喜欢在我的 Laravel 应用程序中编写一个网页,这对我来说很容易。

或者也许已经有一些工具可以让这一切变得简单(也许是 FastoRedis?)?在那种情况下,有关如何以这种方式实现此目标的说明也会非常有帮助。谢谢!

更新:

我尝试过使用 FastoRedis 浏览 Redis 队列,但是我不知道如何删除一个 Mailable,比如红色箭头指向这里: enter image description here

更新:

看综合answer I provided below .

最佳答案

让它更简单。

不要发送带有后一个选项的电子邮件。您必须使用 later 选项发送一个 Job,这个 Job 将负责发送电子邮件。

在此作业中,在发送电子邮件之前,检查 emailAddress-sendTime 对。如果正确,则发送电子邮件,如果不正确,则返回 true,电子邮件将不会发送,作业将完成。

关于laravel - 如何在 Laravel 或 Redis 中取消排队的作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48255735/

相关文章:

通过 SSL https 连接的 Laravel IO Socket 和 redis

postgresql - 如何比较 laravel 和 postgres 中的两个字段

php - 如何在 Laravel 中使用一个查询来进行不同的选择?

redis - Java Redisson 集成

Redis - 有没有办法将一个 Redis 服务器实例分成 2 个 subredis 服务器?

c++ - 优先级队列成员函数不工作

laravel - 2 个带有数据透视表的模型,多对多关系

windows - 可以在 Windows 和 Mac OS 上使用的类似 DB 的 Redis 吗?

c++ - Dijkstra算法中的优先级队列如何实现

c++ - 比较队列和堆栈的内容