在laravel中并行请求时如何使用队列

时间:2019-06-25 10:03:29

标签: laravel queue

我在控制器中的函数调用并行,并且在laravel中创建了一个使用队列的作业,因为并行调用会导致问题

我在我的函数中将此工作称为:

$this->dispatch(new ProcessReferal($orderId));

然后我在终端中运行此命令:

php artisan queue:work --tries=3

但是我的工作仍在并行运行

并同时处理该过程

怎么了?

2 个答案:

答案 0 :(得分:0)

如果要在本地服务器上检查它。然后,您必须在.env文件中添加QUEUE_DRIVER=database

QUEUE_DRIVER=sync用于并行呼叫

答案 1 :(得分:0)

您好,

使用队列laravel,您需要在代码中配置一些信息:

查看更多:https://laravel.com/docs/5.8/queues#connections-vs-queues

第一

  • 驱动程序:默认同步,因此您需要将其更改为:数据库 redis ... 您可以在.env文件中更改它(QUEUE_DRIVER = database ...)

  • 连接:如果将驱动程序设置为数据库并为项目使用mutil DB,则非常重要。

第二:

  • Laravel队列有一些配置,但是我认为我们需要看3件事:retry_after,超时,尝试。当您处理大量工作时,retry_after和超时非常重要。

希望它可以为您提供帮助。