Performance Laravel 4.1-队列:侦听性能

Performance Laravel 4.1-队列:侦听性能,performance,laravel,redis,queue,rabbitmq,Performance,Laravel,Redis,Queue,Rabbitmq,我正在尝试使用Laravel(4.1)中的队列系统。无论是Redis(使用本机驱动程序)还是RabbitMQ,一切都按预期运行。 我遇到的唯一“问题”是性能不佳。看起来每秒只能处理4个作业(我在队列中推1000个作业来测试它)。你有什么提高性能的建议吗?这是一个老问题,但我想我还是会发布的。问题是,Laravel的默认侦听器并不是真正的队列使用者,它会定期轮询队列,除非它已经忙于某项工作。使用真正的AMQP需要从pecl安装一些额外的库。你可以找到那个插件。我还建议您使用此作曲家软件包。然后需要

我正在尝试使用Laravel(4.1)中的队列系统。无论是Redis(使用本机驱动程序)还是RabbitMQ,一切都按预期运行。
我遇到的唯一“问题”是性能不佳。看起来每秒只能处理4个作业(我在队列中推1000个作业来测试它)。你有什么提高性能的建议吗?

这是一个老问题,但我想我还是会发布的。问题是,Laravel的默认侦听器并不是真正的队列使用者,它会定期轮询队列,除非它已经忙于某项工作。使用真正的AMQP需要从pecl安装一些额外的库。你可以找到那个插件。我还建议您使用此作曲家软件包。然后需要编写Laravel命令


目前,我正在为Laravel编写一个RabbitMQ处理程序来解决这个问题。

这是一个老问题,但对于任何来到这里的人来说,queue:work命令有一个守护程序模式,运行方式与queue:listen类似,只是它不必每次重新启动/重新加载Laravel,从而使其性能更高。见文件:


嗨,西蒙,Redis托管在哪里?Redis每秒可以处理数千次读取或写入。您使用了吗?我在这里可能错了,但我认为这是一般的功能-使用
queue:listen
定期检查队列,同时启动一系列作业。但是我怀疑队列是否有100个项目,你让PHP一次做100件事,毕竟它只是一个PHP进程检查队列。不过,您可能可以使用多个队列侦听器来处理更多吞吐量。@alexrussell:是的,我也这么认为。但是,多队列侦听器的问题是CPU使用率。我想我会选择一种不同的方法,将更多的作业“打包”到一个队列中,这样每当调用队列工作者时,它都会同时处理更多的东西。谢谢大家!@特伯特:我也可以试试你的方法,看看拉威尔会发生什么,谢谢。@SimoneFolador-你能报告解决方案或者你在这个问题上的经验吗?谢谢!请随时向我通报您的工作。它可能会在未来的项目中变得很方便。>“目前我正在为Laravel编写一个RabbitMQ处理程序来解决此问题。”好的,是您编写的吗?