在这里,
在用户注册时,我从 3rd 方服务导入大量信息,
但问题是该页面需要大量加载,有没有办法在后台运行这个“导入”过程?(因此用户不必等待太多时间来查看页面,并且可能在下次刷新时完成导入)
谢谢
您需要将注册过程分解为两个步骤:一个无需等待导入完成即可加载的轻量级页面,以及另一个执行繁重工作的脚本。第一个将使用 AJAX 触发第二个。最终结果将是“正在处理您的注册”页面,该页面会在工作脚本完成时适当更新。
您应该小心ignore_user_abort
在工作脚本的开头调用,以便如果用户在等待页面上关闭浏览器窗口,注册过程不会中止。
您必须设置一个 cron 作业(如果您正在运行 Linux),该作业执行 curl 命令以访问 PHP 脚本(外部,如 'curl http://domain.com/php/something.php ')或仅执行 php指向内部文件的命令。
您可以创建一个每分钟执行一次的调度程序(这是 cron 作业支持的最短执行时间)并执行您工作的“块”。当然,您必须将 PHP 设置为跳过默认使用的 30 秒执行限制。