Laravel 7 - 停止处理作业并清除队列

Biz*_*Bob 11 laravel laravel-forge laravel-queue laravel-7

我在 AWS 上有一个生产系统并使用 Laravel Forge。有一个正在处理作业的默认队列。

我已经创建了许多作业,现在希望删除它们(因为它们需要很多小时才能完成,而且我意识到我的输入数据很糟糕)。我创建了一个具有良好数据的新作业,但只有在所有其他作业完成后才会对其进行处理。

如何删除所有作业?

redis它之前是使用队列驱动程序设置的。我不知道如何删除作业,因此我将驱动程序切换到database,并重新启动服务器,认为这至少会让作业停止处理。然而,令我沮丧的是,它们仍在继续处理:-(

我什至从 forge ui 中删除了工作程序并重新启动了服务器:作业仍在处理。

为什么作业会继续被处理?

我怎样才能阻止他们?

Mar*_*łek 23

您可以使用:

php artisan queue:clear redis
Run Code Online (Sandbox Code Playgroud)

它将清除连接default时队列中的所有作业redis。如果将作业放入其他队列中,则应指定队列名称,例如:

php artisan queue:clear redis --queue=custom_queue_name
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,但是 `queue:clear` 似乎只在 Laravel 8 中可用。 (6认同)