REST呼び出しでデータをロードしてレンダリングしています。その後、約10秒かかる別のREST APIを呼び出しています。この時点では、これが完了するまで、別のREST呼び出しを行うことはできません。私の質問は、私はこれをどうすればできるのですか?REST-callを同時に実行する方法と低い優先順位を使用する方法
私はスレッドで試しましたが、うまくいかない、何か間違っている、多分スレッドが正しい選択ではないのでしょうか?
これはと呼ばれるルートです。他の呼び出しが優先、のように、持っているので、
get '/api/dashboard/:dbnum/block/:blnum/inbackground/:inbackground' do
user = get_current_userobject
return assemble_error('LOGIN', 'NOTLOGGEDIN', {}, []).rest_fail if !user
dbnum,blnum = params[:dbnum].to_i, params[:blnum].to_i
return { rows: [] }.rest_success if !user.dashboardinfo || !user.dashboardinfo[dbnum] || !user.dashboardinfo[dbnum]['blocks'] || !(block = user.dashboardinfo[dbnum]['blocks'][blnum]) || !respond_to?("dashboard_type_#{block['type']}", true)
if params[:inbackground] == 'true'
t = Thread.new do
t.priority= -1
ret = method("dashboard_type_#{block['type']}").call(block['filters'], false, true)
ret.rest_success
end
t.join
t.exit
else
ret = method("dashboard_type_#{block['type']}").call(block['filters'], false, false)
ret.rest_success
end
end
は、どのように私は「背景」に22にライン8内のコードを実行できますか?