非阻塞命名管道

时间:2011-03-15 19:44:55

标签: php file-io named-pipes

问题摘要:我已经设法加快了图像的翻阅速度,从而大大提高了图像的翻译速度,但代价是使用了并发性。现在我需要确保对竞争条件的并发性。我将依赖脚本轮询正常文件的状态为独立的,但随后决定命名管道会更好。管道以避免轮询和命名,因为我无法从打开它们的脚本中获取PID(这是我需要使用管道进行通信的那个)。

因此,当上传图像时,客户端通过AJAX将POST发送到脚本,该脚本1)保存图像2)产生并行脚本(独立)以拇指图像,3)将图像的JSON返回给客户。然后客户端立即请求翻译版本,我们希望在发送响应时有足够的时间准备。但是如果它没有准备好,Apache mod_rewrites指向第二个脚本(依赖)的路径,它等待翻阅完成然后返回图像数据。

我希望这是相当简单的,但是,在通过终端单独测试独立脚本时,我得到了这个:

$ php -f thumb.php -- img=3g1pad.jpg
successSegmentation fault

来源在这里:http://codepad.org/JP9wkuba我怀疑我得到了一个段错误,因为我制作的那个还是开放的,现在是孤儿。但我需要它来依赖脚本才能看到,对吧?它不应该是非阻塞的吗?我想这是因为脚本的其余部分可以运行....但它无法完成?正如我在开始时想到的那样,这将是普通文件的工作,除非两者都打开我不想进行轮询。我想最多投票一次并完成它。我只需要进行民意调查并忽略丑陋吗?

1 个答案:

答案 0 :(得分:1)

您需要删除已创建的FIFO文件,然后完成所有脚本。