我正在处理服务器发布给我们的脚本,我们发布到服务器,理论上应该从服务器接收响应并回复发布给我们的服务器。但是有时候我发布的服务器没有回应。最大的问题是,发布给我们的服务器将假定交易成功完成,除非听到其他信息。所以基本上我需要一种方法来将响应发送回第一台服务器,如果我从未收到我发布的服务器的回音。我认为register_shutdown_function可以为我工作,但我不知道如何设置它,所以它只运行在错误或任何其他。在PHP超时运行PHP函数
在此先感谢
我正在处理服务器发布给我们的脚本,我们发布到服务器,理论上应该从服务器接收响应并回复发布给我们的服务器。但是有时候我发布的服务器没有回应。最大的问题是,发布给我们的服务器将假定交易成功完成,除非听到其他信息。所以基本上我需要一种方法来将响应发送回第一台服务器,如果我从未收到我发布的服务器的回音。我认为register_shutdown_function可以为我工作,但我不知道如何设置它,所以它只运行在错误或任何其他。在PHP超时运行PHP函数
在此先感谢
register_shutdown_function()
应该为你工作。只需使用一个全局变量来确定远程服务器是否回应与否:
<?php
function on_shutdown() {
if (!$GLOBALS['complete']) {
// Handle server not responding here
}
}
// Suppress "FATAL ERROR" message when time limit reached
error_reporting(0);
$complete = FALSE;
register_shutdown_function('on_shutdown');
// Code which posts to remote server here
$complete = TRUE;
这意味着$complete
仍然会是假的,如果该帖的远程服务器不完整的,所以你可以检查truthyness代码$complete
在关闭时触发的函数中。
downvoter是否善意解释这有什么问题? – DaveRandom 2012-04-20 16:24:17
如何将数据发布到目标服务器?卷曲? – DaveRandom 2012-04-20 16:05:19
它使用COM库(dll)发布,我们发布的服务器为我们提供了运行的DLL,并且我只是使用dll将它们发布到 – Peter 2012-04-20 16:06:48
因此,这是一个编译为PHP扩展的DLL ,其功能有时不会返回?我感觉这是一个相当差的延伸。虽然没有太多可以做的,但我想... – DaveRandom 2012-04-20 16:12:04