Laravels Queue\ShouldBeUnique 和 Queue\Middleware\WithoutOverlapping 有什么区别?

What's the difference between Laravels Queue\ShouldBeUnique and Queue\Middleware\WithoutOverlapping?

我有一份工作以某种方式被多次启动。我希望这项工作只启动一次。如果任何其他尝试 运行 作业已经在队列中,我希望那些 运行 中止。

我已经阅读了 Laravel 8 文档,但不知道是否应该使用:

我相信第一个会中止对 运行 作业的后续尝试,而第二个会使其保持排队状态,只是确保它不会 运行 直到第一个作业完成。谁能确认一下?

通过尝试在控制台 运行 同一作业的多个实例进行本地确认 window。

在我的工作 class 中实现 Queue\ShouldBeUnique 接口意味着后续尝试被中止。

而在 app\console\kernel.php 文件中将 ->withoutOverlapping() 添加到我的工作引用的末尾只会阻止它同时 运行ning。如果已经 运行ning.

它不会中止作业