我已中Bottle.pyBottle.py具有短延迟结果,以零长度响应
@get('/create/new/image', apply=[auth_request])
def request_new_image():
file = invoke_image_creation()
return static_file(file, root='pics',
mimetype='image/jpg')
定义下列静态路由在该方法中,供应较大的图像invoke_image_creation()
一个简单的事件锁(threading.Event
)用于让应用程序阻塞,直到图像被创建。然后它应该返回静态文件。
对于小型图像工作的,对于较大的(1280×720与约50 KB),它返回:
- HTTP 200
- 响应没有内容
- 内容长度:0
- MIME-类型:image/jpg
阻塞只持续一会儿,远远小于一秒钟,只是为了确保它在那里。
这可能是什么原因造成的?使用simple routing static files function工作得很好,图片完全一样。唯一的区别是,该文件事先存在并在HTTP GET请求中定义。
你是否正确关闭文件? –
@MartijnPieters其实这不是我的呼吁,因为图像创建是由一个单独的过程完成的,我所做的只是观察文件系统的变化(inotify,创建文件事件),然后解锁'threading.Event'。因此,文件关闭由另一个进程完成。但是,文件创建事件和文件结束流之间可能存在一些重叠? –
将文件写入磁盘会有滞后吗? –