【发布时间】:2014-05-07 13:45:07
【问题描述】:
我正在尝试使用 Laravel (4.1) 中的队列系统。 Redis(使用本机驱动程序)和 RabbitMQ 一切都按预期工作。 我遇到的唯一“问题”是性能不佳。看起来每秒只能处理 4 个作业(我在队列中推送 1000 个作业来测试它)。您有任何提高性能的提示吗?
【问题讨论】:
-
嗨 Simone,Redis 托管在哪里? Redis 每秒可以处理数千次读取或写入。你用pipelining吗?
-
我在这里可能错了,但我认为这是一般功能 - 使用
queue:listen定期检查队列,同时解雇一堆工作。但我怀疑如果队列有 100 个项目,你会让 PHP 一次做 100 件事情,毕竟它只是一个检查队列的 PHP 进程。不过,您可能可以创建多个队列侦听器来处理更多吞吐量。 -
@alexrussell:是的,我也这么认为。但是,多个队列侦听器的问题是 CPU 使用率。我想我会选择一种不同的方法,并将更多的工作“打包”到一个工作中,这样每当调用队列工作者时,它就可以一次处理更多的东西。谢谢!
-
@TwBert:我也可以试试你的方法,看看 Laravel 会发生什么,谢谢。
-
@SimoneFolador - 能否请您报告解决方案或您在此问题上的经验?
标签: performance laravel redis queue rabbitmq