【问题标题】:How to handle multiple threads for laravel jobs?如何处理 laravel 作业的多个线程?
【发布时间】:2016-09-15 16:54:55
【问题描述】:

我正在从事一个 laravel 项目,该项目涉及应用程序的客户通过各种其他 API 将数据导入应用程序。

我正在考虑为需要导入的每种数据制作工作。但是,这意味着许多客户将提出需要由队列工作人员处理的工作,这意味着如果客户提出了一个工作来导入一个正在导入某种数据的工作,如果另一个客户也提出了一个工作要导入同一种数据,他必须等待第一个客户的工作完成,然后第二个客户的工作将由队列工作开始工作。但是我们不能让 100 个客户互相等待。

那么对于这种进口,什么是可行的解决方案?我应该将作业放在散列队列上,然后调用这些队列吗?或者有没有更好的方法来处理这个问题。有没有人使用过这样的应用程序,其中数据是由客户从各种 API 异步导入的。以及如何最好地处理它。

【问题讨论】:

    标签: multithreading laravel laravel-5 laravel-queue


    【解决方案1】:

    你的方向是正确的。你需要一个队列工作者,比如 Laravel 的 - 但你需要选择异步驱动程序。您可以使用内置驱动程序或尝试安装自己的队列服务器,如 RabbitMQ。这是一个不错的包,带有用于 Laravel 5 的 RabbitMQ 驱动程序:

    https://github.com/vladimir-yuldashev/laravel-queue-rabbitmq

    这将使您的所有客户请求都进入异步队列,每个线程都有单独的线程。这些队列系统的工作效率非常高,我们可以说这是一种异步 PHP。为了在 PHP 代码中更加异步,您可以使用 Guzzle HTTP 包,它提供异步请求(以及来自应用程序的 PHP 代码/服务器端的完整服务)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-20
      • 2020-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多