我正在尝试以一种可以限制使用 DelayedJob 的地理编码 api 调用流的方式在我的 Rails 应用程序中处理地理编码。
我的意图只是对地理编码请求进行排队,因为它们对用户的时间不敏感。此外,我正在使用一个免费的地理编码 API (Nominatim),它每秒只需要一个请求。
我已经设置了地理编码器 gem,在我的用户模型中,我从用户帐户设置中获取了邮政编码(它不能为空,我已经在验证它)。
我的想法是使用 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 方法的用途。