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

问题描述 投票:0回答:1

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

我通过jquery提交我的文件和分析参数。服务器接收到请求后, 在我的控制器中使用类似这样的方式发送作业:

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

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

这是服务器资源的问题吗?我可以设置作业的优先级,使它慢一些,但不会导致服务器无响应吗?

有什么好办法吗?

laravel asynchronous queue jobs
1个回答
0
投票

好了,谢谢大家的意见。我发这个问题主要是想得到大家对我使用队列的评价,因为我到现在为止还没怎么用过。毕竟罪魁祸首是服务器。似乎在解析文件的过程中,cpu的使用量达到了最大值,所以在计算完成之前,服务器是没有反应的。通过加倍分配cpu,问题得到了解决,所以我想我正确使用了队列。

再次感谢您的时间。

P.S. @AnujShretha no it was not a memory issue.I have payed alot of attention to how i parse the file and each line so i wouldnt waste resources, it was the cpu which cannot be calculated as easily. 再次感谢

© www.soinside.com 2019 - 2024. All rights reserved.