【问题标题】:Which Rails app server is request being requested from从哪个 Rails 应用服务器请求请求
【发布时间】:2014-07-16 04:47:41
【问题描述】:

我有一个带有 3 个不同应用服务器的 rails 应用。如果我想在 Rails 视图中显示请求的服务器,我会这样做吗?

更具体地说,我的问题与延迟工作有关。我在每个应用服务器上都有工作人员。当 DJ 创建异常并将异常报告给滚动条时,我遇到了一个间歇性错误。我想知道从哪个服务器生成间歇性错误(无需查看日志文件)。

是否有命令可以告诉我延迟作业进程在哪个应用服务器上执行?

提前致谢。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3.2 delayed-job


    【解决方案1】:

    最简单的方法之一是导出帮助您唯一标识服务器的环境变量,然后简单地读取该变量。例如:

    export THIS_SERVER='batman'
    
    04:42:09:website >> rails c
    Loading development environment (Rails 4.1.4)
    2.0.0-p451 :001 > ENV["THIS_SERVER"]
    => "batman"
    

    【讨论】:

    • 是的,我当时在想一些事情。问题是如果我有 50 个应用服务器(谢天谢地,我没有),我必须设置 THIS_SERVER 50 次......我确实找到了 ip = `hostname`
    • 如果您需要一个可扩展的解决方案,那么一定要使用其中一个 Linux 实用程序,例如 uname、hostname 甚至 ifconfig。有很多方法可以获取您需要的信息。另一种选择是将信息放入您的 capistrano 部署脚本中,以便以这种方式设置变量,而不必登录每个服务器进行设置。归根结底,选择能够以适当的努力完成任务的工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多