关闭浏览器时如何在队列中执行非常繁重的任务(在后台运行)?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关闭浏览器时如何在队列中执行非常繁重的任务(在后台运行)?相关的知识,希望对你有一定的参考价值。
这次我提出了一个问题,希望你能引导我解决。我创建了一个php脚本,允许加载包含大量数据的CSV文件(加载它我使用AJAX请求)。此脚本从文件中提取数据,然后检查此数据是否尚未存储在数据库中,使用另一个脚本获取从文件中提取的每个数据的信息,最后保存已成功通过的数据。 BD表中的所有验证过程。这是一个可以持续几秒钟或几分钟的过程,因为我可以上传的文件包含超过10万个数据,所以我不想让这个过程持续打开浏览器。
我想知道的是当我关闭浏览器时,如何让这个进程在服务器上内部运行。比如将它放入队列并让我在关闭浏览器时继续运行。一旦我重新打开浏览器并打开脚本页面,该页面向我展示了该过程当前的进展情况。我的想法是,当我关闭浏览器时,数据处理不会中断。
你能给我实现这个的任何建议或例子吗?
答案
根据你的描述,我认为你最好自己运行一个专用的守护进程(第三方或自己编写的守护进程)来完成后台工作。
我认为在PHP代码中不这样做的原因是:
- 如果你从服务器代码中分叉它,你必须安装别的东西,因为它是一个民谣,你要生成的那个进程将从父进程继承一些无用的数据
- 使用专用守护程序,您可以更轻松地跟踪每个作业的状态,更重要的是,如果您只是为服务器代码中的每个作业分配一个新进程,则不会产生大量进程。
以上是关于关闭浏览器时如何在队列中执行非常繁重的任务(在后台运行)?的主要内容,如果未能解决你的问题,请参考以下文章