2011-11-20 89 views
0

我有一段需要一段时间才能处理的脚本,它必须从数据库取得内容并将数据传输到其他服务器。背景PHP工作人员

目前,我已经在表单提交后立即执行该操作,并且需要花费时间传输该数据以表明其已发送。

我在想,是不是要让它在客户端前面做这个过程?

我不想要一个cron,因为它需要在同一时间发送,但只是不加载客户端。

+0

可能重复的[我怎么能实现一个任务,应该在PHP线程中完成](http://stackoverflow.com/questions/6841830/how-can-i-achieve-a-task-这应该是在线程在php) – Gordon

+0

更多相关的问题:http://stackoverflow.com/search?q=background+process+php – Gordon

+0

并看看http:// stackoverflow。 com/search?q = gearman + php – Gordon

回答

1

几个选项:

  1. Exec的PHP脚本,并DB工作在自己的网页,但不等待EXEC的输出。请仔细阅读非常详细,不要盲目接受来自用户的任何输入参数,而不必对其进行消毒。我只提到这是一个选择,我绝不会自己做。

  2. 让您的数据库更新脚本始终在后台运行,查询触发其更新的事情。例如,可以检查/tmp/run.txt是否存在,如果存在,将会启动数据库更新。然后,您可以从您的网页创建run.txt并返回而无需等待响应。

  3. 将您的数据库更新脚本创建为守护进程。

+0

制作守护进程需要什么?是否需要服务器的任何要求? –

0

这里有一些事情你可以看看:

多少数据你转移,并通过转移是它更像是一个数据唯一拷贝和粘贴,或者是你插入从数据你的数据库到目标服务器,然后从你的源删除数据?

您可以尝试分析您的SQL,看看是否有任何优化空间。

然后你可以检查你的php代码,看看是否有什么,即使是最细微的,也可以帮助更快地完成必要的任务。

源和目标数据库服务器位于哪里(就网络和地理位置而言,如果您碰巧知道)以及源服务器和目标服务器能够通过网络/网络进行通信的速度有多快?