У меня есть два приложения rails (теперь оба на Rails 3.1.1), и они прекрасно работают.Тем не менее, у меня есть зависимость между ними.Приложение A
использует данные приложения B
путем ссылки на него.Эти ссылки создаются автоматически, но они должны быть рассчитаны путем поиска данных приложения B
.Я работаю на Windows 7 с Ruby 1.9.2 и Thin в качестве веб-сервера, и это не изменится: - (
Я пробовал следующее:
- Использовать толькоРесурс RESTful, так называемый контроллер, называемый его действием (
get_xml_obj
с некоторыми параметрами в нем), считывает необходимые значения из XML. Сработало, но для каждого вызова требуется от 0,5 с до 1 с. - Замененоон ActiveResource # find , который также работал, но с той же производительностью, что и предыдущее решение.
- Я установил nginx и настроил его так, чтобы соединение оставалось активным, чтобыобработка соединения должна быть намного быстрее. Но не заметил никакой разницы при вызове
B
из A
.
Когда я сравниваю затраченное время, это типичные примеры (здесь с 4 ссылками в одномвеб-страница):
Приложение A:
Started GET "/tasks/search_task/1803" for 127.0.0.1 at 2011-11-02 14:11:04 +0100
Processing by TasksController#search_task as HTML
Parameters: {"id"=>"1803"}
Rendered tasks/_tooltip.html.haml (4529.5ms)
Completed 200 OK in 4532ms (Views: 4527.5ms | ActiveRecord: 2.0ms)
cache: [GET /tasks/search_task/1865] miss
Приложение B:
cache: [GET /service/get_xml_obj?key=notice&value=rails] miss
Started GET "/service/get_xml_obj?key=notice&value=rails" for 127.0.0.1 at 2011-
11-02 14:11:05 +0100
Processing by ServiceController#get_xml_obj as */*
Parameters: {"key"=>"notice", "value"=>"rails"}
Completed 200 OK in 6ms (Views: 3.0ms | ActiveRecord: 1.0ms)
и 3 других вызова аналогичной длины (<10 мс). </p>
Так что я могу что-то сделать, чтобы настроить ретrieval (без прямого доступа к базе данных)?Знаете ли вы какую-либо хорошую документацию о том, как измерить и настроить веб-сервер и промежуточное ПО?Это только личные приложения, поэтому их невозможно развернуть на приличном сервере.Я использую кеш для извлеченной информации, так что со временем она улучшается, но 1 секунда - это слишком много, чтобы ждать.И на странице, которую я хочу отобразить, может быть более 1 или 2 ссылок.