【发布时间】:2016-03-22 09:35:56
【问题描述】:
环境:Debian、lighttpd、fam。虚拟专用服务器的内核 Dnotify 是否开启尚不清楚。
我的 CGI 在文件系统中创建一个文件后,它会向客户端响应一条短消息,在浏览器中运行 java 脚本,通知客户端该文件已准备好下载。这里有一个问题 - 大多数时候客户端从 lighttpd 收到 http 404 错误,尤其是当所有这些软件在 localhost 中运行时。我认为这个问题是由文件创建的 fam 通知 lighttpd 的延迟引起的。我想所有事件都按以下顺序发生:
- CGI 创建一个文件。
- CGI 响应客户端。
- 客户端从 lighttpd 获取文件。
- lighttpd 在其缓存中找不到该文件。
我可以想象,一旦文件在远程主机中创建并通过 NFS 通知到 lighttpd,这样的问题会更糟。
我的问题是:如何编写 CGI 代码以在响应客户端之前告诉 lighttpd 文件创建?
也就是说,我如何在上述步骤1. 和2. 之间“插入”通知步骤?如果我不能用 lighttpd 做到这一点,但我可以用 nginx 做到这一点,我也可以考虑切换到后者。同样,我可以从 fam 切换到其他文件交替监视器。
最好的问候,
【问题讨论】: