Laravel Queues适用于多用户环境

Nik*_*tia 6 laravel laravel-5 laravel-5.1 laravel-5.2 laravel-queue

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

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

因此,为了实现这一点,Laravel提供Queues了在后台运行任务(如果我不明白错误),现在用于多用户环境,即如果多个用户需要生成报告(比如说有4个用户),那么这个特征命名Queues,是否意味着一个接一个地执行任务(即当4个用户一个接一个地要求报告生成时,那么第4个用户的报告只会在生成第3个用户的报告时生成)?

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

anw*_*erj 0

基于队列的架构并不复杂。请参阅 Queue 为您提供了不同消息传递实现(例如rabbitMQ、beanstalkd)的接口。
现在,在代码中的任何位置,您都可以向队列发送消息,在这种情况下,该队列称为作业。现在,您的队列将有多个作业,这些作业已准备好按 FIFO 顺序退出。

根据您的问题,有工作人员监听队列,他们获得工作并执行它们。这取决于你想要多少工人。如果你有一个工作人员,你的任务将被一个接一个地执行,工作人员越多,并行进程就越多。

工作进程是通过名为 Artisan 的 Laravel 命令行界面启动的。每个流程意味着一名工人。您可以启动多个具有主管的工作人员。