Избегать мертвых блокировок в рекурсивных веб-звонках на рельсах 3

скажем, я отправил запрос на получение некоторых действий на каком-то контроллере в рельсах.

и в этом действии я отправляю запросы на получение веб-страниц с другого сервера. например:

open("http://example.com/myexample.xml")

когда я вызываю эту функцию с помощью localhost в качестве параметра, сайт запрашивает его сам, поэтому сервер переходит в состояние блокировки и останавливается

любые идеи, чтобы получить страницу localhost не делая запросы в очереди в основном потоке?

такая же проблема возникает, когда основной поток спит или занят обработкой запроса, а другой запрос приходит на сервер... он ждет, пока первый запрос не будет завершен.

любые решения для этого?

1 ответ

Вы можете запустить другой экземпляр сервера:

rails s # http://localhost:3000
rails s -p 3001 # http://localhost:3001

Затем вы можете отправлять запросы с localhost: 3001 на localhost: 3000 или наоборот.

Я предпочитаю использовать unicorn качестве второго сервера

rails s # http://localhost:3000
unicorn # http://localhost:8080

licensed under cc by-sa 3.0 with attribution.