DelayedJob으로 지오 코드 api 호출의 흐름을 제한 할 수있는 방식으로 내 Rails 앱에서 지오 코딩을 처리하려고합니다.DelayedJob의 스로틀 지오 코드 요청 run_at
내 의도는 지오 코딩 요청이 사용자에게 시간에 민감하지 않기 때문입니다. 또한 무료 지오 코딩 API (Nominatim)를 사용하여 초당 요청 수를 더 이상 요구하지 않습니다.
나는 지오 코드 보석 설정을 가지고 있는데, 내 사용자 모델에서 사용자 계정 설정에서 우편 번호를 얻습니다 (비워 둘 수 없으며 이미 유효성을 검사하고 있습니다).
제 아이디어는 run_at를 사용하여 호출을 제한하는 것이었지만 run_at의 초기 테스트는 대기중인 작업을 표시하지만 지오 코드는 완료시 값을 저장하지 않습니다.
after_validation :run_geocode, :if => :postcode_changed?
def run_geocode
self.delay(:run_at => 30.seconds.from_now).geocode
end
나는 여기 꽤 분명한 것을 놓쳤습니까? 나는 단지 : 지오 코드 (geocode) 메소드가 문서에서 말하는 것을 사용하는 것만으로는 운동 할 수 없다.
감사합니다. 토마스 덕분에, 지오 코드 응답이 올 때까지 기다리지 않습니까? 그것이 메모리 문제를 일으킬 수 있습니까? 또는 지오 코드가 포함 된 지연된 메서드를 만들어 저장해야합니까? – Les
아주 좋은 점, 나는 그것을 놓쳤다. 내 대답을 업데이트했습니다. –
환호하는 Thomas, 매력처럼 일했다 :) – Les