나는 Sinatra 앱으로 Ruby 동시성을 이해하려고한다. 여기
그것입니다Sinatra의 한 경로에서 두 기능을 동시에 실행하는 방법은 무엇입니까?
require 'sinatra'
get '/a' do
sleep 10
"result_a"
end
get '/b' do
"result_b"
end
내가 ruby app.rb
또는 shotgun app.rb
로 실행 한 다음/모두 로 이동하면 다음 /B - /B로드되지 않습니다까지 /A 실행되고로드됩니다. 그래도 난 Heroku가이 응용 프로그램을 배포하고/로 이동
다음/B이 /B 즉시로드됩니다.
내가 이해하는 것처럼 Heroku 프로세스는 로컬 프로세스가 아닌 동시 (또는 다중 스레드?)입니다.
내 질문은 : 로컬 응용 프로그램을 동시에 로컬 서버에서 실행하는 방법입니까? 한 경로에서 예를 들어 두 가지 기능을 동시에 실행할 수 있습니까?
아. 루비의 '스레드'기능을 사용해야 할 수도 있습니다. 지금하고있는 일은 상당히 까다로운 문제이지만 불가능한 것은 아닙니다. –
유니콘은 한 경로에서 여러 기능을 동시에 실행할 수 있습니까? [알았어, Ruby의'Thread', 고마워] – lakesare
유니콘은 동일한 경로에서 두 개의 코드를 동시에 실행하거나 동일한 코드를 두 번 동시에 실행할 수있게합니다. 그것은 당신이해야 할 당신의 노선을 가지고있는 것에 달려 있습니다. 그러나 Unicorn은 두 개의 개별 요청의 컨텍스트에서 메모리의 동일한 객체에 대해 작업하도록 허용하지 않습니다. –