标签: jrubyonrails

Ruby Web开发的良好框架

基本上我是java开发人员,现在正在探索ruby和ruby相关的框架.我主要从事基于网络的项目.我听说过RoRMerb在ruby中进行Web开发.我正在为Merb寻找好的教程/书籍.

ruby java merb jrubyonrails

1
推荐指数
2
解决办法
321
查看次数

Java到JRuby到Resque

我有一个混合Web应用程序,它在同一个Tomcat中运行Java WAR文件和JRuby WAR文件.

我们决定使用(JRuby)Resque作为我们的工作队列.对入队作业的调用如下所示:

Resque.enqueue(FooWorker, 111)
Run Code Online (Sandbox Code Playgroud)

其中FooWorker是JRuby端定义并使用的工作类(并包含在JRuby WAR文件中),当JRuby Resque rake任务处理队列中的作业时,它将被调用.

我想让Java代码能够将要由JRuby FooWorker类处理的Resque队列上的任务排队.

我在https://github.com/tc/call-jruby-from-java-example上查看了Tommy Cheng的代码.java文件

//JavaInterfaceExample.java
interface JavaInterfaceExample{
  int add(int a, int b);
}
Run Code Online (Sandbox Code Playgroud)

和ruby文件

#JrubyAdderImpl.rb
require 'java'

class JrubyAdderImpl
    include Java::JavaInterfaceExample

    java_signature 'int add(int, int)'
    def add(a, b)
        a+b
    end
end
Run Code Online (Sandbox Code Playgroud)

我怀疑我的代码看起来像:java文件

//ResqueInterfaceExample.java
interface ResqueInterfaceExample{
  int resque_enqueue_foojob(int a);
}
Run Code Online (Sandbox Code Playgroud)

红宝石文件

#JrubyResqueImpl.rb
require 'java'
require 'resque'

class JrubyResqueImpl
    include Java::ResqueInterfaceExample

    java_signature 'int resque_enqueue_foojob(int)'
    def resque_enqueue_foojob(a)
    Resque.enqueue(FooWorker, a) 
    end
end
Run Code Online (Sandbox Code Playgroud)

我的FooWorker是一个类,它位于rails app的爆炸war文件目录中,文件是app/workers/foo_worker.rb

我需要做些什么来确保jruby编译器可以访问FooWorker和Resque JRuby类来正确编译代码?

jrubyonrails resque jruby-java-interop

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

使用JRuby on Rails查找当前线程ID

我在config.threadsafe!启用了线程模式()的JRuby 1.7上将Puma与Rails3一起使用  。

现在,随着理论的发展:对于传入的多个客户请求,将使用新线程来服务用户,而不是每次都启动新的Rails流程。

如果要查找此新请求线程的ID,该怎么办?

multithreading ruby-on-rails jruby jrubyonrails ruby-on-rails-3

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

我如何在 ruby​​ 旁边安装 jruby

我首先使用 sudo apt-get install jruby 命令安装了 jruby,它成功了,但当我想要更高版本时,它确实给了我 1.5.6 版本。所以我卸载了它并使用 rvm install jruby 命令,我能够安装 jruby 版本 1.7.19,但是在安装它之后,我的 ruby​​ 应用程序开始产生错误,抱怨缺少像 mysql2 gem 这样的 gem 丢失,运行 bundle install。我运行 bundle install 但我所做的似乎没有任何帮助,我无处可去。当我要求 ruby​​ 版本时,我收到的是 jruby 版本,它的 lyk jruby 覆盖了 ruby​​,,,, 所以我决定卸载 jruby,重新安装 ruby​​,现在 ruby​​ 的功能和以前一样。任何人都可以帮助我使用 ubuntu 命令来帮助我安装 jruby 和 ruby​​,这样两者都可以正常工作而没有任何错误???我请求认真的帮助

jruby jrubyonrails

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

在Ruby中创建Hash的新实例

我是Ruby的新手,我在Ruby中使用HashWithIndifferentAccess作为哈希特性.所以我的代码就像:

def someFunction
    array_list = []
    some_array.each do | x |
        new_hash = HashWithIndifferentAccess.new
        // add entries to new_hash    

        array_list.push(new_hash)
    end

    array_list
end
Run Code Online (Sandbox Code Playgroud)

问题是:对于每次迭代我都在初始化新哈希,但如果我这样做,则array_list中的条目变为空:

def someFunction
    array_list = []
    new_hash = HashWithIndifferentAccess.new

    some_array.each do | x |
        // add entries to new_hash    

        array_list.push(new_hash)
        new_hash.clear
    end

    array_list
end
Run Code Online (Sandbox Code Playgroud)

我不想为每次迭代初始化新的哈希,这个问题的解决方案是什么?

ruby hash ruby-on-rails jruby jrubyonrails

0
推荐指数
1
解决办法
116
查看次数