Laravel/Lumen 中动态创建的工作守护进程队列

Dynamically created worker daemon queues in Laravel/Lumen

我需要为每个帐户的每个作业类型创建多个专用守护进程工作队列。

例如,假设我有 1000 个帐户,每个帐户都需要一个专门的侦听器。每个作业类型都需要它自己的专用工作人员来并行处理 50 个实例。我不希望任何帐户阻止来自另一个帐户的工作人员,我希望一个帐户的所有工作人员异步 运行。我要50000个worker全都开开心心的哼着歌不堵车

如何在代码中为每个帐户动态生成侦听器?

运行宁 1000 个守护进程侦听器是否会占用大量内存?

Redis、Beanstalkd 等特定服务是否更适合此类目标?

计划在 Laravel 或 Lumen 5.2 中尝试这个。

基于具有 2Gb RAM 和 CPU 3.3GHz 频率(1 核)的 linux VM,以及来自 ps aux 命令的统计结果:

一个队列的驻留集大小最低约为 52 MB (50888 KiB),最高约为 70 MB (68752 KiB)。

1000 名工人 = 52,000 MB (52 GB) - 70,000 MB (70 GB)

cpu 的用法似乎微不足道。

注意:我的 php-fpm 目前的版本是 5.x。如果您的目标是 php 7.x,可以获得更多的性能提升。