laravel 异步作业启动后服务器无响应

Unresponsive server after laravel async job starts

我有一个 Web 应用程序,它接受 csv 文件(大文件 > 2000000 行),执行统计分析并创建一个具有相同行数的 csv 文件作为输出。 lines循环的整个过程都在一个job里面。我正在使用 laravel 6.9。我的队列驱动程序设置为数据库。这是发生了什么:

我通过 jquery 提交我的文件和参数以供分析。服务器选择请求,在我的控制器中使用类似这样的方式分派作业:

IndexEstimatorJob::dispatch($indexEstimator)->delay(now()->addSeconds(3));

浏览器收到响应,这意味着它异步运行,并将我重定向到我想查看正在进行的作业的页面。问题是,当作业开始异步并且我被重定向到另一个页面时,当我尝试访问另一个页面时,我的浏览器正在等待服务器永远响应。

是不是服务器资源问题?我能否以某种方式设置作业优先级,使其速度变慢但不会导致服务器无响应?

有什么想法吗?

好的,谢谢大家的评论。我发布这个问题主要是为了获得有关我使用队列的评论,因为到目前为止我还没有使用过它。罪魁祸首毕竟是服务器。似乎 cpu 在文件解析期间使用率达到最大值,因此在计算完成之前服务器没有响应。通过将分配的 cpu 加倍,问题得到解决,所以我想我正确使用了队列。

再次感谢您的宝贵时间。

P.S。 @AnujShretha 不,它不是内存 issue.I 我已经非常注意我如何解析文件和每一行,所以我不会浪费资源,它是 cpu 不能那么容易计算的。再次感谢