За последнюю неделю я заметил, что на страницах, где я использую гем Geocoder для request.location, мое приложение heroku часто отображает
Application Error
An error occurred in the application and your page could not be served. Please try again in a few moments.
If you are the application owner, check your logs for details.
Журналы показывают
Geocoding API not responding fast enough (use Geocoder.configure(:timeout => ...)
Раньше я никогда не замечал этой проблемы, но, возможно, она была всегда, просто до недавнего времени я не очень часто заходил на страницы с проблемой. Возникновение тайм-аута по сравнению с доступом к странице кажется случайным.
Поэтому я добавил
Geocoder.configure(
:timeout => 40
)
в мою конфигурацию/initializers/geocoder.rb. Я думаю, что это привело к более частому доступу к странице, но часто требуется некоторое время для загрузки.
Я применяю почтовый индекс по умолчанию на этих страницах, чтобы не получать ошибок приложений, но это не идеально в долгосрочной перспективе.
Я пытался
if params[:search].present?
@events = Event.near(params[:search], params[:dist], order: 'distance')
elsif user_signed_in? && current_user.address
@events = Event.near([current_user.latitude, current_user.longitude], 25, order: 'distance')
elsif request.location
@events = Event.near([request.location.latitude, request.location.longitude], 25, order: 'distance')
else
@events = Event.near(20016, 100, order: 'distance')
ожидая получить почтовый индекс по умолчанию 20016, когда истечет время ожидания request.location, но я все еще получаю ошибку приложения.
Любые другие предложения?