我有一个 Ruby on Rails 应用程序,模型中包含很多业务逻辑。我还有一个需要使用相同业务逻辑的 Java 后端进程。 如何将 Rails 应用程序打包到可以从 Java(使用 JRuby)调用的 jar 中?
出于性能原因,我需要直接在 Java 中访问代码。执行 HTTP 请求的开销太大。使用消息队列将不起作用,因为访问需要是同步的。
我有一个 Ruby on Rails 应用程序,模型中包含很多业务逻辑。我还有一个需要使用相同业务逻辑的 Java 后端进程。 如何将 Rails 应用程序打包到可以从 Java(使用 JRuby)调用的 jar 中?
出于性能原因,我需要直接在 Java 中访问代码。执行 HTTP 请求的开销太大。使用消息队列将不起作用,因为访问需要是同步的。
你看过莺吗?
https://github.com/nicksieger/warbler
这将帮助您将 Rails 应用程序打包成战争。这对你有帮助吗?
或者,您可以只查看 warbler 生成的文件:它为每个 .rb 文件创建一个 .class 文件,然后生成一个包含 .class 文件的文件。也许你可以把它们装进罐子里。
此外,有关如何在 rails 应用程序之外从 jruby 访问 activerecord 的一些信息,请参阅“JRuby Cookbook”一书中的第 2.14 节。基本上,它涉及从 database.yml 读取配置,并使用 ActiveRecord.establish_connection 打开一个数据库连接,然后您只需要求它们即可访问您的模型。