gpt4 book ai didi

用于多用户环境的 Laravel 队列

转载 作者:行者123 更新时间:2023-12-04 16:06:38 29 4
gpt4 key购买 nike

我正在使用 Laravel 5.1,我有一个大约需要 2 分钟来处理的任务,这个任务特别是生成报告......

现在,很明显,我不能让用户在我接受用户输入的同一页面上等待 2 分钟,而是我应该在后台处理此任务并稍后通知用户任务完成......

因此,为了实现这一点,Laravel 提供了 Queues在后台运行任务(如果我没理解错的话),现在对于多用户环境,即如果有多个用户需要生成报告(比如有 4 个用户),所以是名为 Queues 的功能, 是不是意味着任务会一个接一个地执行(即当4个用户一个接一个地要求生成报告时,只有在生成第3个用户的报告时才会生成第4个用户的报告)??

如果 Queues一个接一个地完成他们的任务,那么无论如何,哪些任务会根据用户的要求在后台立即处理,并且用户可以在其任务完成后得到通知?

最佳答案

基于队列的架构比这复杂一点。请参阅 Queue 为您提供了不同消息实现的接口(interface),如rabbitMQ、beantalkd。
现在,在代码中的任何位置,您都将发送消息发送到队列,在此上下文中称为 JOB。现在您的队列将有多个作业准备好按照 FIFO 顺序退出。

根据您的问题,有工作人员在听队列,他们找到工作并执行它们。需要多少 worker 取决于您。如果您有一个 worker ,您的任务将一个接一个地执行,更多的 worker 更多的并行进程。

工作进程使用 laravel 的命令行界面启动,称为 Artisan。每个进程意味着一个 worker 。您可以使用主管启动多个工作人员。

关于用于多用户环境的 Laravel 队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39449383/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com