Php 关闭连接,但继续进行处理

Php 关闭连接,但继续进行处理,php,connection,Php,Connection,我有一个PHP站点,它执行客户端执行期间触发的Cron,而不是Cron管理器。执行其中一个Cron需要几秒钟的时间,它会保持客户机和服务器之间的连接打开,直到连接完成。虽然我知道我可以设置从服务器而不是在客户机运行期间触发Cron,但我想知道不遵循该格式是否可行 那么,PHP脚本是否可以向Apache(或其托管的任何服务器)发送命令,以关闭客户端和服务器之间的连接,但继续运行(因此,不退出)?这在Apache上有效(显然不适用于使用FastCGI的IIS) 这适用于Apache(显然不适用于使用

我有一个PHP站点,它执行客户端执行期间触发的Cron,而不是Cron管理器。执行其中一个Cron需要几秒钟的时间,它会保持客户机和服务器之间的连接打开,直到连接完成。虽然我知道我可以设置从服务器而不是在客户机运行期间触发Cron,但我想知道不遵循该格式是否可行

那么,PHP脚本是否可以向Apache(或其托管的任何服务器)发送命令,以关闭客户端和服务器之间的连接,但继续运行(因此,不退出)?

这在Apache上有效(显然不适用于使用FastCGI的IIS)

这适用于Apache(显然不适用于使用FastCGI的IIS)


您可以使用
shell
调用PHP二进制文件。。。例如:

shell(“php-f/path/to/cronfile.php>/dev/null 2>/dev/null&”将运行并不等待返回


请参见您可以使用
shell
调用PHP二进制文件。。。例如:

shell(“php-f/path/to/cronfile.php>/dev/null 2>/dev/null&”将运行并不等待返回


参见

通常有两种执行形式

客户方: 客户端将保留在页面上,页面将继续处理给定的命令,直到完成

服务器端: 客户端将导航到一个页面&您在数据库中进行切换:

  UPDATE Table SET PendinCron=1 WHERE IdentiferCol=$IdentiferData

然后,您将有一个Cronjob以X间隔运行,并且只有当
PendinCron
等于1时才会进行处理,如果不是的话。Cron将不会执行所需的任务

通常有两种执行形式

客户方: 客户端将保留在页面上,页面将继续处理给定的命令,直到完成

服务器端: 客户端将导航到一个页面&您在数据库中进行切换:

  UPDATE Table SET PendinCron=1 WHERE IdentiferCol=$IdentiferData

然后,您将有一个Cronjob以X间隔运行,并且只有当
PendinCron
等于1时才会进行处理,如果不是的话。Cron将不会执行所需的任务

这通常不适用于使用FastCGI的IIS,因为它会对多个请求重用同一实例,所以它会等待完成。但是它在Apache上运行得很好。嗯,很奇怪。有些事情正在挑战性地发生,我已经包括了这些行(并修改了
内容长度:0
,以确定到目前为止要发送的内容的大小,但是接收图标(在chrome的顶部)旋转(与以前不同),但仍在更新窗口之前等待整个代码完成,因此正在发送正确的数据,但连接仍保持打开状态,直到cronAh结束,只需添加
fastcgi_finish_request();
(我已更新了问题)如果服务器压缩输出,则需要使用标头禁用它(“内容编码:无\r\n”);这通常不适用于使用FastCGI的IIS,因为它对多个请求重复使用同一实例,所以它会等待完成。但它在Apache上运行良好。嗯,这很奇怪。有些事情正在发生,我已经包括了这些行(并修改了
Content-Length:0
,以确定到目前为止要发送的内容的大小,但接收图标(位于chrome的顶部)会旋转(与以前不同),但仍在更新窗口之前等待整个代码完成,因此正在发送正确的数据,但连接仍保持打开状态,直到cronAh结束,只需添加
fastcgi_finish_request();
(我已更新了问题)如果服务器压缩输出,则需要使用标头(“内容编码:无\r\n“;