【发布时间】:2020-04-21 02:37:16
【问题描述】:
我的用例:
我的应用程序将有任意数量的用户,每个用户都有他们想要处理的各种作业。这些工作应该能够同时发生——无论如何,其中一些工作。
因此,例如,如果 User1 通过 UpdateStock 和 CompleteSale 之类的命令发送,而 User2 通过 UpdateStock 之类的命令发送,则这些命令中的每一个都需要排队并允许彼此同时运行。
我一直在研究Laravel Queues,看起来,如果我将所有 3 个作业放入一个队列中,它们一次只能运行一个,但如果我将它们放入 3 个不同的队列中,它们' d 都可以同时运行。 我理解的对吗?
那么这就引出了我的下一个问题:我需要一个队列,每个用户,每个命令。但是当然,新用户一直在注册,如果我需要运行php artisan queue:listen --queue=user1:command1 & php artisan queue:listen --queue=user1:command2 & php artisan queue:listen --queue=user2:command1 ... 来让它工作,那么......这怎么可能?什么时候可以随时添加新用户...
我的意思是我可以编写一些 php,在每次向队列中添加某些内容后以编程方式执行 php artisan queue:listen --queue=userx:commandx,但我不确定这是否有意义。如果该命令已经运行了怎么办——它会有 2 个进程试图处理同一个队列吗?
也许我想错了。我对整件事感到有点失落。我可以参考一些建议。
【问题讨论】: