【问题标题】:Using Java to change ruby views使用 Java 更改 ruby​​ 视图
【发布时间】:2018-02-16 09:00:44
【问题描述】:

我有一个用 jruby 编写的程序,部署在一个 tomcat 服务器上。该程序的一切工作正常,除了我无法找到一种在 Java 进程完成时通知用户的方法。 Java 完成了程序的大部分繁重工作,我希望弹出一个 ruby​​ 视图,说明处理已完成。 我得到的最接近的是使用 http get 请求尝试在 ruby​​ 中显示“显示”视图,但它似乎不起作用,我假设因为它在不同的程序运行时运行。
无论如何,在服务器tomcat java代码完成后调用客户端机器上的ruby视图更改。

编辑: ruby 代码和 java 代码一样并行运行。 java代码汇聚成一个输出,而ruby代码不汇聚,主要只是运行java代码和处理前端。

【问题讨论】:

  • 当您的 java 程序完成时,将其写入数据库(内存存储、文件系统中的文件、java 程序和您的 rails 应用程序都可以访问的任何内容)。然后,rails 应用程序可以通过读取该存储轻松检查状态。
  • 我希望更多的是来自 java 的推动,而不是来自 Ruby 的拉动。我不希望 ruby​​ 代码不断地抓取目录等。
  • 这种情况下,有多种pub-sub解决方案可供选择:ActionCable、rabbitmq等

标签: ruby-on-rails tomcat jruby warbler


【解决方案1】:

JRuby 具有 Java 集成,根据 Java 类在 Tomcat 上“共享”(或不共享)的方式,您可以从 Rails 应用程序中访问此类类。问题主要是关于设计这样一个适合的解决方案,如果不知道确切的要求,这很难说。

您显然需要在两个应用程序之间共享一些状态(全局)(假设不同的上下文)。无论是信号量还是原子标志。查看 Java 并发实用程序 - 尽管如果您不想在 Ruby 端进行轮询,它可能最终会有点紧耦合。

也许尝试从一个应用程序获取 servlet-context 到另一个应用程序并导出共享状态(例如队列对象)或简单地使用调度程序从 Java 上下文向 Rails 发送请求。

【讨论】:

    猜你喜欢
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多