我有一个需要一段时间才能处理的脚本,它必须从数据库获取内容并将数据传输到其他服务器。
目前我已经在提交表单后立即执行此操作,并且需要花费时间来传输数据以表明其已发送。
我想知道无论如何要做到这一点它不会在客户面前做这个过程?
我不想要一个cron,因为它需要同时发送,但只是不加载客户端。
答案 0 :(得分:1)
有两种选择:
Exec从您的网页上运行数据库的PHP脚本,但不要等待exec的输出。 非常小心这一点,不要盲目地接受用户的任何输入参数而不清理它们。我只提到这个选项,我自己永远不会这样做。
让您的数据库更新脚本始终在后台运行,轮询发生触发其更新的事情。比如说,它可能会检查是否存在/tmp/run.txt,如果存在则会启动数据库更新。然后,您可以从网页创建run.txt并返回,而无需等待回复。
将您的数据库更新脚本创建为守护程序。
答案 1 :(得分:0)
以下是您可以查看的一些内容:
您传输了多少数据,通过传输更像是仅复制和粘贴数据,还是将数据从数据库插入目标服务器,然后从源中删除数据? / p>
您可以尝试分析您的SQL,看看是否有任何优化空间。
然后你也可以检查你的PHP代码,看看是否有任何东西,甚至是最轻微的,可能有助于更快地执行必要的任务。
源和目标数据库服务器位于何处(就网络和地理位置而言,如果您碰巧知道)以及源服务器和目标服务器能够通过网络/网络进行通信的速度有多快?