关闭浏览器时如何在队列中执行非常繁重的任务(在后台运行)?

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

这次我提出了一个问题,希望你能引导我解决。我创建了一个PHP脚本,允许加载包含大量数据的CSV文件(加载它我使用AJAX请求)。此脚本从文件中提取数据,然后检查此数据是否尚未存储在数据库中,使用另一个脚本获取从文件中提取的每个数据的信息,最后保存已成功通过的数据。 BD表中的所有验证过程。这是一个可以持续几秒钟或几分钟的过程,因为我可以上传的文件包含超过10万个数据,所以我不想让这个过程持续打开浏览器。

我想知道的是当我关闭浏览器时,如何让这个进程在服务器上内部运行。比如将它放入队列并让我在关闭浏览器时继续运行。一旦我重新打开浏览器并打开脚本页面,该页面向我展示了该过程当前的进展情况。我的想法是,当我关闭浏览器时,数据处理不会中断。

你能给我实现这个的任何建议或例子吗?

php ajax server cron host
1个回答
1
投票

根据你的描述,我认为你最好自己运行一个专用的守护进程(第三方或自己编写的守护进程)来完成后台工作。

我认为在PHP代码中不这样做的原因是:

  • 如果你从服务器代码中分叉它,你必须安装别的东西,因为它是一个民谣,你要生成的那个进程将从父进程继承一些无用的数据
  • 使用专用守护程序,您可以更轻松地跟踪每个作业的状态,更重要的是,如果您只是为服务器代码中的每个作业分配一个新进程,则不会产生大量进程。
© www.soinside.com 2019 - 2024. All rights reserved.