В режиме разработки rails 5 я постоянно получаю эту ошибку Net::ReadTimeout(Net::ReadTimeout)
в моем пользовательском промежуточном программном обеспечении сеанса, которое отправляет запрос http на мой локальный фиктивный пользовательский механизм сеансов. Также ошибка возникает только после того, как я сделал изменение кода, и rails отображает страницу ошибки. Это очень раздражает и действительно замедляет процесс разработки, поскольку нам всем приходится дважды обновляться, чтобы увидеть результат изменения кода.
После отслеживания кода в этих промежуточных программах, похоже, что мое пользовательское промежуточное ПО запускает запрос http до полной перезагрузки загрузчика.
Мне было интересно, можем ли мы остановить / остановить запрос промежуточного программного обеспечения стойки, чтобы он продолжал спускаться до тех пор, пока не будет выполнена перезагрузка.
Версия Rails: 5.1
Ruby версия: 2.4.1
Я помещаю следующие сообщения журнала до и после завершения перезагрузки
application.rb
ActiveSupport::Reloader.to_run do
puts 'Reloading'
end
ActiveSupport::Reloader.to_complete do
puts 'DONE Reloading'
end
custom_session_siddleware.rb
def call(env)
...
puts 'Session Processing'
http = Net::HTTP.new(uri, port)
...
@app.call(env)
end
Вывод после изменения кода и обновления
Reloading
Session Processing
DONE Reloading
Вот все мои промежуточные программы
use Rack::Sendfile
use ActionDispatch::Static
use ActionDispatch::Executor
use ActiveSupport::Cache::Strategy::LocalCache::Middleware
use Rack::Runtime
use Rack::MethodOverride
use ActionDispatch::RequestId
use RequestStore::Middleware
use ActionDispatch::RemoteIp
use ActionDispatch::ShowExceptions
use ActionDispatch::DebugExceptions
use ActionDispatch::Reloader
use ActionDispatch::Callbacks
use ActiveRecord::Migration::CheckPending
use ActionDispatch::Cookies
use ActionDispatch::Session::CookieStore
use ActionDispatch::Flash
use Rack::Head
use Rack::ConditionalGet
use Rack::ETag
use MyCustomSession::CustomSessionMiddleware