为gem Rails配置全局设置的最佳位置

时间:2015-09-08 16:20:26

标签: ruby-on-rails ruby ruby-on-rails-3 google-api-client

我在rails应用程序中使用Google Api Client gem。

我需要全局设置以下配置:

Google::Apis::RequestOptions.default.retries = 5

这样做的最佳做法/地点是什么。

请注意设置此选项时遇到问题的其他人:直到0.9.x版本的google_api_client gem与先前版本不兼容时,Google :: Apis类才会存在。

1 个答案:

答案 0 :(得分:3)

如果该选项依赖于运行的应用程序实例,则说您需要在本地计算机上进行1次重试或暂存,但希望在生产中重试5次,处理此问题的最佳方法是将其保留在环境变量中并在应用程序启动时获取它。

所以请将以下代码放在初始化程序中(例如./config/initializers/google_api_client.rb):

Google::Apis::RequestOptions.default.retries = ENV['google_api_client_retries']

然后您可以使用以下命令启动应用程序:

google_api_client_retries=1 bundle exec rails s

您可以使用dotenv gem将环境变量保存在文件中(以便在开发环境中保持简单),只需将其放在./.env文件中:

google_api_client_retries: 1

它将自动获取,因此您只需

即可启动应用
bundle exec rails s

如果你想在任何应用程序实例上使用它5,你可以在初始化程序中明确地将它设置为5.