我有一个由python程序读取的命名管道,在Windows 2008中作为服务安装,用于从数据库打印数据。写入管道的代码(php)如下所示。 ($ cmd是传递的命令行)。
$pipeName = "\\\\.\\pipe\\printerpipe";
@trigger_error("");
@$pipe = fopen($pipeName,'rb+');
$a = error_get_last();
if ($a['message'] == '') {
fwrite($pipe,$cmd);
$ans = fread($pipe,256);
} else {
print error message "service not loaded"
}
没有自定义错误处理程序。
这在我的测试机器(Window7)和生产服务器上运行良好 - 直到今天。今天它打印了三份报告,然后报告服务未加载错误,然后再打印4次!我怀疑系统是忙还是超载 - 我有一个用户,报告很小(大多数报告是一页),并且打印是假的。大多数报告都出现在打印机上,因为浏览器正在回复请求。
此外,我的Python代码和metworked打印机之间的链接每晚都要打破,所以我必须每天早上重新启动服务。有人可以确认这是由于打印机被关闭,或建议如何重新建立链接,而不是重新启动打印服务?
我需要使服务可靠,我不知道如何继续。意见和建议感激不尽。
可能是这段代码 - 我不理解错误处理,代码是从互联网上的帖子中复制的。