Я использую ruby 1.8.7 и рельсы 2.3.4. Я разрабатываю плагин, поэтому у меня не так много возможностей.
В моем контроллере мне нужно вызвать грабли. Задание рейка займет больше времени, поэтому я придерживаюсь подхода, упомянутого в Railscast , который
system "rake #{task} &"
Это решение прекрасно работает, и все в порядке. Я знаю, что это решение не будет работать на Windows, и я в порядке с этим.
Я запустил свой сервер на порту 3000. Был вызван контроллер, который запустил задачу rake в фоновом режиме. Однако, если я нажимаю ctrl + c мой скрипт / сервер и пытаюсь перезапустить сервер, я получаю эту ошибку.
Адрес уже используется - bind (2) (Errno :: EADDRINUSE)
Затем я изменил свой код, чтобы сделать это
fork do
system "rake #{task} &"
end
Все та же проблема.
Кто-нибудь знает, как обойти эту проблему с заблокированным портом 3000. Также поможет любое объяснение того, почему задача rake блокирует порт 3000.