标签: jrubyonrails

在Rails应用程序中记录线程内部

我有一个Rails应用程序,其中少量操作需要大量的计算时间.我没有考虑将这些操作作为后台任务进行管理的复杂性,而是发现我可以将处理拆分为多个线程,并且通过将JRuby与多核服务器一起使用,我可以确保所有线程在合理的时间内完成.(客户已表示非常有兴趣在后台保持此方法与运行任务.)

问题是写入Rails记录器在这些线程中不起作用.日志文件中没有显示任何内容.我找到了一些对这个问题的引用但没有解决方案.我不介意在我的代码中插入puts以帮助调试,但是stdout似乎被glassfish gem app服务器吃掉了.

有没有人成功完成Rails ruby​​线程内的日志记录,而不是每次都创建一个新日志?

multithreading ipc ruby-on-rails jruby jrubyonrails

9
推荐指数
1
解决办法
4131
查看次数

将Ruby on Rails项目转换为JRuby on Rails项目

有什么特别的方法可以将Ruby on Rails项目转换为JRuby on Rails项目吗?现在需要让Rails端通过RMI与Jav​​a服务器通信,因此想知道如何进行转换.谢谢.

java rmi ruby-on-rails jrubyonrails

8
推荐指数
1
解决办法
2919
查看次数

大括号:Ruby&Rails中的[Brackets],(圆括号)和{Curlies}

因此,Ruby 有时候使用大括号而不是要求它们的宽松容忍度导致了很多混乱,因为我正在尝试学习Rails以及何时/何地使用它们以及为什么?

有时参数或值会像(@user, @comment)它们看起来那样传递,而其他时候传递[ :user => comment ]的只是::action => 'edit'

我在谈论[] vs () vs {}的我们

规则是什么?你有什么技巧可以帮助你记住吗?

ruby jrubyonrails curly-braces parentheses square-bracket

8
推荐指数
1
解决办法
6063
查看次数

使用log4 jruby-rack上的log4j进行日志记录,以获取Rails 3应用程序

我花了3个小时的时间来尝试使用Log4j来记录我的Rails应用程序.我终于让它运转了,但我不确定我所做的是否正确.在我最后一次尝试之前,我尝试了各种方法无济于事.所以我真的在这里寻找一些验证,也许还有一些指示和提示 - 诚实地说,任何事情都会受到赞赏.我将我所有的微弱方法总结为以下三次尝试.我希望对每次尝试出错的地方有一些启示 - 即使这意味着我会被撕掉.

我在这里先向您的帮助表示感谢!

系统规格

  • Rails 3.0
  • Windows Server 2008
  • Log4j 1.2
  • Tomact 6.0.29
  • Java 6

尝试1 - 配置Tomcat以使用Log4J

我基本上遵循的Apache Tomcat网站上的导向这里.步骤是:

  1. 在中创建一个log4j.properties文件$CATALINA_HOME/lib
  2. 下载并复制log4j-x.y.z.jar$CATALINA_HOME/lib
  3. 替换$CATALINA_HOME/bin/tomcat-juli.jartomcat-juli.jar从的Apache Tomcat Extras文件夹
  4. 复制tomcat-juli-adapters.jar从Apache Tomcat上Extras文件夹成$CATALINA_HOME/lib
  5. 删除 $CATALINA_BASE/conf/logging.properties
  6. 启动Tomcat(作为服务)

根据指南预期的结果

我应该tomcat.log在我的$CATALINA_BASE/logs文件夹中看到一个文件.

实际结果

  • 没有tomcat.log
  • 看到三个标准日志
    • jakarta_service_20101231.log
    • stderr_20101231.log
    • stdout_20101231.log

  • 我不应该至少看过一个tomcat.log档案吗?

尝试2 - 使用默认的Tomcat日志记录(公共日志记录)

  1. 恢复了之前设置中的所有更改
  2. $CATALINA_BASE/conf/logging.properties通过执行以下操作修改:

    1. handlers在行中为我的应用程序添加设置:5rails3.org.apache.juli.FileHandler
    2. 添加Handler特定属性

      5rails3.org.apache.juli.FileHandler.level = FINE
      5rails3.org.apache.juli.FileHandler.directory …
      Run Code Online (Sandbox Code Playgroud)

log4j jrubyonrails tomcat6 jruby-rack ruby-on-rails-3

7
推荐指数
1
解决办法
2709
查看次数

环境变量或YAML配置文件

背景:
步骤1 - >我们有一个框,通过在具有特定配置的测试模式下运行应用程序来运行单元和功能测试.
步骤2 - >步骤1成功后,我们通过在另一个框中以不同配置集的测试模式运行应用程序来运行应用程序的集成测试.
步骤3 - >步骤2成功后,我们通过在生产模式下,在性能测试框中运行应用程序的性能测试.
步骤4 - >步骤3成功后,构建被认为是稳定的,UAT框用该代码库更新,应用程序在生产模式下运行,供客户查看和反馈.步骤5 - >使用来自客户的GO,生产框将使用代码库进行更新.

现在,从上述步骤我们观察到,在步骤1和2中,当应用程序在测试模式下运行时,它具有不同的配置.步骤3,4和5的情况类似.

在这种情况下,推荐的做法是什么?我们有YAML配置文件,但我个人认为维护大量配置文件没有意义.因此,我从
"每个环境的配置文件"的实践
改为
"每个导轨模式的配置文件,将变量外部化到Linux环境".

我是在正确的轨道上吗?我不采取行动,简化事情吗?

这两种方法的优点和缺点是什么?

ruby-on-rails jrubyonrails

7
推荐指数
1
解决办法
3904
查看次数

JRuby on Rails:在Rails应用程序中使用自定义Java类

我刚开始使用JRuby on Rails并且非常喜欢它.我知道如何在我的Rails应用程序中使用Java API中的当前类,但如果我想创建一个用纯Java代码编写的新自定义类,我怎样才能在我的Rails应用程序中使用它?

例如,假设我创建了Dog.java:

class Dog {
  private String name;

  public Dog() {
    name = "Fido";
  }

  public String getName() {
    return name;
  }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能在我的Rails应用程序中创建一个新的Dog对象(Dog.new)?我需要将Dog.java或Dog.class文件放在某处,然后调用某种形式的"import"将其导入我的Rails应用程序.我不知道这应该放在目录结构中,也不知道我应该在哪里以及如何告诉我的应用程序如何包含它.

java ruby-on-rails jruby jrubyonrails

6
推荐指数
1
解决办法
1499
查看次数

访问Object#try

我正在尝试获取对象#fick in ruby​​的访问权限.

我认为仅仅包括activesupport就可以了,但事实并非如此.

irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'active_support'
=> true
irb(main):003:0> o = Object.new
=> #<Object:0x15d45d9>
irb(main):004:0> o.respond_to? :try
=> false
irb(main):005:0> 
Run Code Online (Sandbox Code Playgroud)

我如何获得访问权限Object#try

ruby jruby jrubyonrails ruby-on-rails-3

6
推荐指数
1
解决办法
150
查看次数

随着Torquebox的时间流逝,消费者的数量不会减少

我有一个在扭矩盒上的rails应用程序.我正在使用处理器来完成一些后台工作.我已经为这个处理器分配了4名工人.

queues:
  /queue/company:

messaging:
  /queue/company:
    CompanyWorker:
      concurrency: 4
Run Code Online (Sandbox Code Playgroud)

CompanyWorker是做给其他一些网站的电话.它可能引发异常,但我已经被工人本身抓住了.但是当我注意到我的日志时,我看到了没有.线程/工作人员随着时间的推移而减少.10-15小时后,只有一个线程/处理器工作.如何阻止这种情况发生并使所有4个工作人员/处理器保持活着状态.

几个小时后我才看到

22:29:40,945 INFO  [stdout] (Thread-124 (HornetQ-client-global-threads-1460048766))
Run Code Online (Sandbox Code Playgroud)

只有线程124完成其工作,

几个小时后,我需要重新启动服务器以使所有4个处理器正常工作

jrubyonrails ruby-on-rails-3 torquebox jboss7.x

6
推荐指数
1
解决办法
95
查看次数

Myapp :: Application :: Railties常常缺少Rails 4 beta和Jruby jruby-1.7.2

在没有黑客的情况下,我无法使用Rails 4工作:

在railties/lib/rails/engine.rb中,我不得不用const_get初始化Railties,否则

def railties
  @railties ||= self.class.const_get(:Railties).new
  # @railties ||= self.class::Railties.new
 end
Run Code Online (Sandbox Code Playgroud)

否则我得到这个:

./bin/rake rake aborted!未初始化的常量Myapp :: Application :: Railties org/jruby/RubyModule.java:2677:in const_missing' /Volumes/Opt/rails/rails-edge/railties/lib/rails/engine.rb:469:inrailties' /Volumes/Opt/rails/rails-edge/railties/lib/rails/application.rb: 241 :in load_tasks'org run_tasks_blocks' /Volumes/Opt/rails/rails-edge/railties/lib/rails/engine.rb:444:in/ jruby/RubyBasicObject.java:1659:in __send__' org/jruby/RubyKernel.java:2086:insend' /Volumes/Opt/rails/rails-edge/railties/lib/rails/railtie/configurable.rb:30:in method_missing' /Volumes/Opt/projects/myapp/Rakefile:6:in(root)'org/jruby/RubyKernel.java:1046 :在'加载'

由于同样的原因,Rails本身不会启动.这是正确的修复还是我掩盖了一些潜在的问题?

jruby jrubyonrails ruby-on-rails-4

6
推荐指数
1
解决办法
1064
查看次数

如何排除模块但在RDoc中包含该模块的类

对于某些空白模块,运行RDoc没有意义.例如:

 class moduleName::className < ActiveRecord::Base

 def foo
 end

 def bar
 end

 end
Run Code Online (Sandbox Code Playgroud)

RDoc生成报告:

moduleName -> blank HTML
moduleName::className -> complete documentation
Run Code Online (Sandbox Code Playgroud)

如何删除moduleName,这是从报告生成中删除的?

任何帮助将不胜感激,谢谢.

module class jrubyonrails rdoc

5
推荐指数
0
解决办法
135
查看次数