【问题标题】:Setup Remote beanstalkd Laravel 4.2设置远程 beanstalkd Laravel 4.2
【发布时间】:2015-05-28 12:38:05
【问题描述】:

我的堆栈设置包括以下内容:

  1. www.main.com - 主服务器(主应用程序代码和主管)
  2. www.queue-server.com - Beanstalkd 安装在这里(这里没有代码只有 beanstalkd)

我正在使用 Laravel 4.2

我在 www.main.com 上设置了 Supervisord 并添加了以下队列监听器:

php artisan queue:work--queue=test --env=test

我的app/config/queue.php文件设置如下:

'beanstalkd' => array(
    'driver' => 'beanstalkd',
    'host'   => 'www.queue-server.com',
    'queue'  => 'test',
    'ttr'    => 60,
),

据我了解,它应该在 www.queue-server.com 服务器上推送和处理作业,但那里没有显示 cpu 峰值,但 www.main.com 服务器显示 cpu 使用率很高。

所以我的问题是:

  1. 我的设置是否正确?或者我必须改变一些东西?
  2. 我想在www.queue-server.com 服务器上处理我的工作。我怎样才能做到这一点?

【问题讨论】:

    标签: php laravel queue beanstalkd


    【解决方案1】:

    beantalkd 服务器只是队列数据本身的存储,它不做任何处理。然后是处理队列的php artisan queue:work 命令。这就是为什么您看到 www.main.com 服务器上的负载较高的原因,因为虽然您的队列存储在另一台服务器上,但主服务器是当前处理队列的服务器。

    如果您希望www.queue-server.com 服务器处理队列,您还需要在那里安装您的应用程序并从那里运行 artisan 命令。

    【讨论】:

    • 谢谢 Wader,好的,我将在 www.queue-server.com 上复制代码,但用户将仅使用 www.main.com,因此 \Queue::push('myqueue',['data']) 代码将仅在 www.main.com 上执行,将有用吗?
    • 是的,没关系。在您的队列服务器上安装您的代码并在那里运行queue:work 命令,这将在您的队列服务器上处理您的队列并将您的主服务器留给网络。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    相关资源
    最近更新 更多