我正在構建一個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