我编写了一个PHP脚本来导入大量数据。导入过程是通过Ajax调用触发的,ajax请求一直等待服务器响应。由于我正在使用专用服务器,因此没有超时问题。
问题在于,我们需要一项功能,即可以终止导入进程。例如客户端上的停止按钮。我们认为,如果我们终止等待的ajax调用,那么服务器上的进程也将停止,因为没有请求需要服务。但不幸的是,这并不是事实,脚本在服务器端继续执行,而Ajax请求已经从客户端中断。
其次,我们在该项目中使用PHP会话。假设取消按钮需要在服务器上通过另一个脚本进行Ajax调用以停止进程,那么如果已经有一个等待的ajax请求,该请求如何到达服务器。Php / Apache将保留第二个请求,直到第一个请求周期完成。
注意:根据我们的项目架构,我们需要在每个页面上使用session_start()。如果有人能指导这些问题,那就太好了。
问题在于,我们需要一项功能,即可以终止导入进程。例如客户端上的停止按钮。我们认为,如果我们终止等待的ajax调用,那么服务器上的进程也将停止,因为没有请求需要服务。但不幸的是,这并不是事实,脚本在服务器端继续执行,而Ajax请求已经从客户端中断。
其次,我们在该项目中使用PHP会话。假设取消按钮需要在服务器上通过另一个脚本进行Ajax调用以停止进程,那么如果已经有一个等待的ajax请求,该请求如何到达服务器。Php / Apache将保留第二个请求,直到第一个请求周期完成。
注意:根据我们的项目架构,我们需要在每个页面上使用session_start()。如果有人能指导这些问题,那就太好了。
session_write_close()
来释放锁定,否则只能有一个正在使用会话的PHP脚本在执行中。 - Marc B