0
我編寫了一個快速(hah)服務器來接受包含從中下載歸檔的URL的JSON有效內容。解析JSON後,我下載文件,解壓縮並向每行添加元數據。對於大文件,這可能需要很長時間。在後臺處理HTTP請求的結果 - Ruby
require 'thin'
require 'sinatra'
require 'json'
set :bind, '0.0.0.0'
#Listen on port 4567 at /core/action/parse-v1/parse-file for JSON post
post '/core/action/parse-v1/parse-file' do
request.body.rewind
request_payload = JSON.parse request.body.read
url = request_payload["s3Url"]
compressionType = request_payload["compressionType"]
- 東西,從s3Url拉動文件
- 東西,解壓縮/焦油-xvf /等的基於compressionType設置
- 東西,在該文件中創建用於每行一個JSON對象,並將該文件request_payload它
- 的東西,結果推到一個隊列進行處理 最後完成,發送200返回給客戶端(這可能超時59秒前)。
目前這一切都需要相當長的一段時間,並保持HTTP連接始終打開。如何立即通過「東西」的部分關閉,讓HTTP服務器關閉它的連接?
我已經試驗了一下,但我堅持。