Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在LARAVEL中同时启动多个队列以实现多线程?_Php_Laravel_Multithreading_Multiprocessing_Lumen - Fatal编程技术网

Php 如何在LARAVEL中同时启动多个队列以实现多线程?

Php 如何在LARAVEL中同时启动多个队列以实现多线程?,php,laravel,multithreading,multiprocessing,lumen,Php,Laravel,Multithreading,Multiprocessing,Lumen,我想使用多线程同时从服务器获取数据 多线程背后的原因是为了避免服务器及其资源上的负载 因此,我发现了laravel队列,由于我是laravel的新手,我对它不太了解,但在研发之后,我做了这项工作并开发了一个任务,可以一个接一个地调度队列,但我希望队列将同时启动您可以安装并使用Supervisor,然后,您可以通过numprocs=8属性将其配置为运行例如8个队列进程 以下是有关安装和配置Supervisor的Laravel文档: 您还可以对队列进行分类,并将作业分派到特定队列(),然后使用Sup

我想使用多线程同时从服务器获取数据

多线程背后的原因是为了避免服务器及其资源上的负载


因此,我发现了laravel队列,由于我是laravel的新手,我对它不太了解,但在研发之后,我做了这项工作并开发了一个任务,可以一个接一个地调度队列,但我希望队列将同时启动

您可以安装并使用Supervisor,然后,您可以通过
numprocs=8
属性将其配置为运行例如8个队列进程

以下是有关安装和配置Supervisor的Laravel文档:

您还可以对队列进行分类,并将作业分派到特定队列(),然后使用Supervisor为每个队列提供配置文件

  • 安装监控程序
  • Supervisor是Linux操作系统的进程监视器,并且 如果
    队列:工作
    进程失败,将自动重新启动该进程。到 在Ubuntu上安装Supervisor,您可以使用以下命令:

  • 配置主管
  • 管理器配置文件通常存储在
    /etc/supervisor/conf.d
    目录。在此目录中,您可以 创建任意数量的配置文件,指导主管如何 您的流程应该受到监控。例如,让我们创建一个
    laravel worker.conf
    启动并监视队列的文件:work 过程:

    在本例中,
    numprocs
    指令将指示主管自动运行8
    queue:work
    进程并监视所有进程 如果它们失败,请重新启动它们。您应该更改
    队列:工作sqs
    命令
    指令的一部分,用于反映所需队列 连接


    您可以安装并使用Supervisor,然后通过
    numprocs=8
    属性对其进行配置,以运行例如8个队列进程

    以下是有关安装和配置Supervisor的Laravel文档:

    您还可以对队列进行分类,并将作业分派到特定队列(),然后使用Supervisor为每个队列提供配置文件

  • 安装监控程序
  • Supervisor是Linux操作系统的进程监视器,并且 如果
    队列:工作
    进程失败,将自动重新启动该进程。到 在Ubuntu上安装Supervisor,您可以使用以下命令:

  • 配置主管
  • 管理器配置文件通常存储在
    /etc/supervisor/conf.d
    目录。在此目录中,您可以 创建任意数量的配置文件,指导主管如何 您的流程应该受到监控。例如,让我们创建一个
    laravel worker.conf
    启动并监视队列的文件:work 过程:

    在本例中,
    numprocs
    指令将指示主管自动运行8
    queue:work
    进程并监视所有进程 如果它们失败,请重新启动它们。您应该更改
    队列:工作sqs
    命令
    指令的一部分,用于反映所需队列 连接


    多线程不能避免服务器上的负载。如果将它分成多个队列,而不是1个队列,理论上会使用更多的资源,因为每个队列都有自己的资源,仅用于运行队列,更不用说队列处理的作业了。答案很可能在于您如何处理要放入队列的代码。但是这里没有足够的信息。多线程不能避免服务器上的负载。如果将它分成多个队列,而不是1个队列,理论上会使用更多的资源,因为每个队列都有自己的资源,仅用于运行队列,更不用说队列处理的作业了。答案很可能在于您如何处理要放入队列的代码。但是这里没有足够的信息。
    sudo apt-get install supervisor
    
    [program:laravel-worker]
    process_name=%(program_name)s_%(process_num)02d
    command=php /home/forge/app.com/artisan queue:work sqs --sleep=3 --tries=3
    autostart=true
    autorestart=true
    user=forge
    numprocs=8
    redirect_stderr=true
    stdout_logfile=/home/forge/app.com/worker.log
    stopwaitsecs=3600