加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 如何在Rake中获得当前的Rack环境?

发布时间:2020-12-16 21:23:18 所属栏目:百科 来源:网络整理
导读:有没有办法在Rake中获取有关当前Rack环境的信息?例如,如何判断Rack是在开发模式还是生产模式下运行? 我知道Rake不支持Rack.我试图避免在生产和开发环境之间的几乎相同的Rake任务中复制代码. 解决方法 问题很老但从来没有取得最佳实践答案或令人满意的答案.
有没有办法在Rake中获取有关当前Rack环境的信息?例如,如何判断Rack是在开发模式还是生产模式下运行?

我知道Rake不支持Rack.我试图避免在生产和开发环境之间的几乎相同的Rake任务中复制代码.

解决方法

问题很老但从来没有取得最佳实践答案或令人满意的答案.

真正的问题是:如何确保在Rake任务中使用哪个环境以便加载正确的配置/命中正确的if条件.

Note: As Rake doesn’t give much about Rack (Rake is not using HTTP) to
rely on the RACK_ENV is basically wrong but common and handy if a Rake
task loads your main Sinatra application (the RACK_ENV is required to let
Sinatras development? / test? / production? being set correctly).

答案:使用每个Rake任务调用设置环境.

命令行调用:

/usr/bin/rake namespace:task_name RACK_ENV=production

Cronjob调用(在crontab中):

cd /into/your/app/root && /usr/bin/rake namespace:task_name RACK_ENV=production --silent

Note: To specify the path of the Rake bin is not necessary if you have it in your global system variables. Your path might differs from mine used in the examples,check on Unix systems with: whereis rake

您可以通过以下方式检查任务中的RACK_ENV:

puts ENV["RACK_ENV"]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读