За прошедшую неделю, я заметил, что на страницах, где я использую камень геокодировании request.location, мой Heroku приложение часто отображаетЯвляется ли request.location в geocoder rails gem слишком медленным для героику?
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
)
моей конфигурации/инициализаторах/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, но я все еще получаю ошибку приложения.
Любые другие предложения?
Спасибо за ваш ответ, Лукас! В какой-то момент у меня установлен тайм-аут до 30, но у меня все еще были проблемы. Я установил тайм-аут на 20 и заменил место на «Вашингтон, округ Колумбия». Я думаю, что 20016, возможно, не было допустимым значением для местоположения. По крайней мере сейчас это колеблется между использованием request.location и «Вашингтон, округ Колумбия». – CrowdPublishTV
Да, я должен был быть более ясным. Если тайм-аут геокодера установлен в 30, вы все равно увидите таймауты H12, потому что общее время запроса будет больше 30 секунд. –