首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >不使用部署描述符将RAILS_ENV传递到Torquebox

不使用部署描述符将RAILS_ENV传递到Torquebox
EN

Stack Overflow用户
提问于 2013-09-17 05:09:48
回答 1查看 363关注 0票数 1

我想知道是否有一种方法可以直接将RAILS_ENV的值传递到Torquebox服务器,而无需经过部署描述符;类似于如何使用-D选项将属性传递给-D。

在过去的几周里,我一直在与Torquebox的各种部署问题进行斗争。我认为很大一部分问题与将宝石打包到Knob文件有关,这是在窗口环境中管理它们的最实用的方法。我尝试过归档部署和扩展部署;有和没有外部部署描述符。

  • 使用外部部署描述符,我发现打包的Gem依赖项没有正确部署,并且收到了有关缺少依赖项的错误。
  • 当扩展时,我不得不在依赖项和包含在Knob中的内容之间进行大量的混淆,但最终我得到了它的部署。但是,扩展的Knob中的某些文件被标记为失败(可能重复依赖?),但它们不影响整个部署。问题是当服务器重新启动时,部署将在第二次提到无法重新部署以前失败的一个文件时失败。

我发现唯一对我工作一致的方法是没有外部部署描述符的归档。但是,我仍然需要一种方法来告诉应用程序它在哪个环境中运行。对于每个环境,我有不同的Torquebox实例,它们只运行一个应用程序,所以在服务器级别上配置它是相当合理的。

如能在此事项上提供任何协助,将不胜感激。非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2013-09-24 05:52:43

我最终找到的解决方案是将RAILS_ENV作为Java属性传递给Torquebox服务器,然后在Rails boot.rb初始化器中将ENV['RAILS_ENV']设置为此值。

步骤1:设置Java属性

首先,您需要为Torquebox服务器设置Rails Environment java属性。为了保持标准的Java约定,我调用了这个rails.env。

根据您的平台和配置,需要在以下脚本中进行此更改:

  • 使用JBoss : service.bat
  • 独立环境: standalone.conf.bat (Windows)或standalone.conf (Unix)
  • 域环境::domain.conf.bat (Windows)或domain.conf (Unix)

将下面的行添加到上面适当的文件中,以设置此Java属性:

代码语言:javascript
运行
AI代码解释
复制
set JAVA_OPTS=%JAVA_OPTS% -Drails.env=staging

-D选项用于设置Java属性。

步骤2:基于Java属性设置ENV‘’RAILS_ENV‘

我们希望尽早设置RAILS_ENV,因为很多Rails初始化逻辑都使用它。我们第一个将应用程序逻辑注入Rails初始化过程的机会是boot.rb。

请参阅:http://guides.rubyonrails.org/initialization.html#config-boot-rb

下面的行应该添加到boot.rb的顶部

代码语言:javascript
运行
AI代码解释
复制
# boot.rb (top of the file)
ENV['RAILS_ENV'] = ENV_JAVA['rails.env'] if defined?(ENV_JAVA) && ENV_JAVA['rails.env']

这需要成为文件中的第一件事,这样,邦德勒就可以对环境做出明智的决定。

正如您在上面所看到的,JRuby的一个很少提到的特性是它可以方便地通过ENV_JAVA全局映射(镜像JRuby)公开所有ENV系统属性,因此我们可以使用它来访问Java属性。

我们检查是否定义了ENV_JAVA (即正在使用JRuby ),因为我们支持多个部署环境。

我强制在出现时使用rails.env属性,因为此时*RAILS_ENV*似乎已经有了一个默认值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18850803

复制
相关文章
我们为什么从 REST 转向 gRPC
服务间的通信方式是在采用微服务架构时需要做出一个最基本的决策。默认的选项是通过 HTTP 发送 JSON,也就是所谓的 REST API。我们也是从 REST 开始的,但最近我们决定改用 gRPC。
AI.NET 极客圈
2019/07/19
1.7K0
斗图会输?不存在的
可以看出,每一页的图片都在 div 标签里面,然后每一个 a 标签包含一个图片,
Dwyane
2018/12/07
8480
REST当中为什么要使用HTTP PUT
REST(Representational State Transfer)是网络服务接口的一种风格,并不是一个标准,就web service而言,REST要比SOAP(SOAP是标准,不是风格)轻量得多,容易得多。我记得我最初开始接触web service的时候,所有的材料上来就是一大堆的名词,SOAP, WSDL,看得头都要大了,后来提出来的REST就容易理解得多,虽然目前SOAP在企业级的web service中还有一席之地,但是在公共的Internet上,不是REST的服务实在不好意思和人打招呼,我们
张善友
2018/01/22
7770
为什么AngularJs会火?
Angular.js is a MV* (Model – View – Whatever) Javascript framework which is maintained by Google which excels in the creation of single-page-applications or even for adding some “magic” to our classic web applications.
javascript.shop
2019/09/04
9160
为什么@Conditional会失效?
一、背景描述二、常见条件注解失效场景三、聊一聊条件注解实现原理四、问题定位五、解决方案六、参考
叔牙
2023/08/09
6790
为什么@Conditional会失效?
使用iqtree软件利用基因存在缺失变异矩阵(0/1)矩阵构建进化树
线性泛基因组相关论文通常会获得基因存在缺失变异矩阵,接下来会使用这个矩阵构建进化树,今天的推文介绍一下使用iqtree软件利用基因存在缺失变异矩阵(0/1)矩阵构建进化树的代码
用户7010445
2024/02/03
3700
使用iqtree软件利用基因存在缺失变异矩阵(0/1)矩阵构建进化树
为什么有混合云的存在?
我们知道,云计算事实上已经成为企业基础架构上的主要形式,好不夸张的说,云计算就是当代企业的IT架构。
用户7426861
2021/08/24
9170
为什么 Google 会很强?
资本总是想榨干员工和机器的每一点剩余价值。如果那一天服务器有了意识,一定会揭竿起义。
LIYI
2022/11/18
6540
MySQL为什么会死锁?
死锁是指两个或者两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而导致的一种阻塞的现象,如果没有外力,他们将一直等待下去。
阿珍
2022/12/06
1.2K0
MySQL为什么会死锁?
为什么 demangle 会失败?
本周有位网友在交流群提到“为什么无法在自己的电脑中通过 c++filt 解析符号 _ZN5folly6detail15str_to_integralIxEENS_8ExpectedIT_NS_14ConversionCodeEEEPNS_5RangeIPKcEE ?”
酷酷的哀殿
2020/10/26
1.2K0
为什么 demangle 会失败?
为什么可逆矩阵又叫“非奇异矩阵(non-singular matrix)”?
最近在捡回之前的线性代数知识,在复习可逆矩阵的时候,发现有的书上把可逆矩阵又称为非奇异矩阵,乍一看名字完全不知所云,仔细一分析,还是不明白。要想弄明白,还是得从英文入手,下面的解释主要从这里得来的Wh
marsggbo
2018/12/19
2.4K0
为什么我使用 GraphQL 而放弃 REST API?
本文最初发布于 Max Desiatov 的个人博客,经原作者授权由 InfoQ 中文站翻译并分享。
winty
2021/05/19
2.4K0
为什么Cloud + DevOps会更好?
为了在优化成本的同时最大化云计算的优势,DevOps方法是最好的方法。在此博客文章中,我们解释了原因。
DevOps云学堂
2021/02/01
7120
Kafka 为什么会丢消息?
Kafka 是一个分布式的高可用、高性能消息队列,它可以用于大规模的数据处理和流式计算场景。在 Kafka 中丢失消息是一件非常不好的事情,因为这会导致数据的不连续性、计算结果的准确性下降等问题,从而影响到系统的功能和运行效率。下面我将从多个方面探讨 Kafka 为什么会丢失消息,并对其解决办法和优化策略进行简要描述。
用户1289394
2023/08/22
2320
Kafka 为什么会丢消息?
Spring事务为什么会失效?
如果对AOP的实现不太熟悉的话可以看我之前的文章,或者到我网站www.javashitang.com上查看系列文章
Java识堂
2022/05/19
5230
Spring事务为什么会失效?
删除namespace为什么会Terminating?
当我们删除集群中的某个namespace之后,有时候namespace并没有按照我们的期望正常删除,而是一直卡在Terminating状态。本文主要讨论下Terminating状态发生的可能性以及解决办法。
keke.
2021/03/16
10K0
Redis为什么会这么快?
Redis 属于键值(key-value)数据库,键值数据库会使用哈希表存储键值和数据,其中 key 作为唯一的标识,而且 key 和 value 可以是任何的内容,不论是简单的对象还是复杂的对象都可以存储。键值数据库的查询性能高,易于扩展。
MickyInvQ
2020/09/27
9090
Redis为什么会这么快?
为什么坐车会晕车呢
我是一个坐车经常晕车的人,特别是在车里看手机的时候,感觉很难受。今天正好看到了卓克老师对晕车的解读,我总结了几个关键点,分享给大家。先说结论,每个人都会晕车,就是程度不一样。不要在车上玩手机、看书。这些行为会加重你的不适感。最好的解决方式是上车就睡觉或者集中注意力听音频,光闭眼也无法避免晕车。另外就是豪车更容易晕。
石云升
2022/07/29
5330
为什么坐车会晕车呢
为什么这段代码会阻塞?
2. 这段代码开启了一个 goroutine,这个goroutine会向 in 通道中放入2000个 Content 对象,每个对象的 i 字段从0到1999。每放入一个对象都会记录日志。
腾讯云开发者
2024/09/10
3190
为什么这段代码会阻塞?
Double为什么会丢失精度
在工作中,谈到有小数点的加减乘除都会想到用BigDecimal来解决,但是有很多人对于double或者float为啥会丢失精度一脸茫然。还有BigDecimal是怎么解决的?话不多说,我们开始。
用户4283147
2022/10/08
2.4K0
Double为什么会丢失精度

相似问题

Python: While循环中的多个While循环

122

WHILE循环中的多个条件

30

while循环中的多个条件

22

While循环中的多个条件

11

while循环中的while循环

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档