Использование геокодера на производственном сервере - PullRequest
4 голосов
/ 23 июня 2011

Я разрабатываю приложение на основе местоположения. И мне нужен надежный источник для получения геолокации.

сейчас я использую этот геокодер плагин.

и я получаю эту ошибку: -

Geocoding API not responding fast enough (see Geocoder::Configuration.timeout to set limit).

Я получаю сообщение об ошибке, когда наша команда из 5 человек тестирует на промежуточных серверах

Мне нужно достаточно быстрое решение с ~ 10 000 запросов в день без ограничений в секунду

PS: я открыт для использования некоторых платных услуг.

EDIT

Вспомните случай, когда вы хотите что-то искать в Нью-Йорке. В текстовом поле вы напечатаете Newyork и нажмите Enter. Теперь на стороне сервера мне нужно получить геокод для Newyork, а затем искать в БД на основе этого.

Ответы [ 3 ]

11 голосов
/ 23 июня 2011

Вы должны геокодировать на стороне клиента (в javascript), вы не будете ограничены:

Геокодирование на стороне сервера через Веб-служба геокодирования имеет квоту 2500 запросов на IP в день, так что все запросы в один день считаются с Квота. Кроме того, веб-сервис скорость ограничена, так что просит слишком быстро привести к блокировка. Геокодирование на стороне клиента через браузер ограничена скорость за сеанс карты, поэтому геокодирование распределены по всем вашим пользователям и масштабируется с вашей базой пользователей. Geocoding квоты и ограничения скорости управляют стратегии, изложенные в этой статье.

Когда использовать геокодирование на стороне клиента

Основной ответ "почти всегда". Как пределы геокодирования на IP-адрес, этот предел рассчитывается против потребителя вашего приложения. Это будет очень редко, что кто-то собирается введите более 2500 адресов в день сидя за своим компьютером. Следовательно, запустив геокодирование на стороне клиента, вы как правило, не нужно беспокоиться о ваша квота.

http://code.google.com/apis/maps/articles/geocodestrat.html

0 голосов
/ 23 июня 2011

Попробуйте использовать maxmind.com - это выполнит гео-поиск на основе IP-адреса.У них есть бесплатная или платная база данных, которую ваш магазин хранит на вашем сервере.Они имеют Ruby API .Я использую это в производственной системе, и поиск обычно занимает менее миллисекунды, поскольку данные кэшируются.

0 голосов
/ 23 июня 2011

Это, вероятно, должно произойти с любым веб-сервисом. Возможно, вы захотите отправить эти задачи в менеджер фоновых заданий (например, Resque или Delayed Job), который будет повторять неудачные задания, не прерывая работу пользователей. Они также заставляют ваше приложение казаться быстрее, поскольку вашему пользователю не придется ждать ответа от сторонних (и, возможно, прерывистых) веб-приложений.

...