Есть такой код в контроллере:
def game
ddos=Time.now
result=nil
r=Thread.new do
while true
sleep 1 //Latency-like-defend-of-DB
result = Model.where('id!=?',1).last //Requests any model, as example
if result
break
end
end
end
while true
if ddos+30<Time.now //If server not respond after 30 sec
result='Too long'
end
if result
r.kill // Kill thread
break
end
end
render json:{result:result}
end
Гугл не дал ничего хорошего, c рельсами знаком пока что слабо.
При такой реализации основной поток засыпает, и сервер не отвечает на другие подключения.
ruby - 2.2.2, rails - 4.2.1.
Пробовал webrick и puma.
Оба работают с одним подключением, возник вопрос - я делаю что-то не так, но как сделать правильно?