我正在构建一个Ruby Web服务,它接受POST或PUT请求,告诉它做一些工作。这项工作涉及移动一些大文件 - 有时通过网络 - 所以这些请求可能需要一段时间。我正在构建一个单独的服务 - 以Python或节点或其他方式 - 处理调度&监视对Ruby服务的请求。是否可以从简单的Ruby/Rack应用程序发送流式响应?
我想发送关于Ruby应用程序行为的定期进度报告给调度器。也许每次离散操作成功完成时,例如移动一个文件,都会有一行。
这是可能的标准机架应用程序?仅供参考我使用的是露营框架这不是从西纳特拉不同等。通常你从刚才的方法返回发送响应:
def get
@status = 404
@headers['Content-Type'] = 'application/json'
return Yajl::Encoder.new.encode({error: 'forbidden', reason: 'I don't like you'})
end
我知道我的过程是由机架/ Web服务器接口管理,所以我不知道是否可以在Rack中发送流式响应,而不必深入框架的工作方式并与Rack交谈。有人能给我一些指点吗?
是的,我知道,Ruby是不是流的HTTP服务器首选的解决方案;)
谢谢。不过,我想我不得不停止尝试将这种东西装入基于Rack的Web框架中。 – Cera