【问题标题】:Jruby - rails app and sidekiq on same jvm instanceJruby - 同一个 jvm 实例上的 rails app 和 sidekiq
【发布时间】:2017-07-01 22:50:18
【问题描述】:

这是一个愚蠢的问题,但找不到答案。我在 jruby 上运行一个 rails 应用程序,我使用 sidekiq 来处理后台作业。我真的必须在另一个 jvm 实例中运行 sidekiq(运行 bundle exec sidekiq 会发生什么)?

Jruby 消耗的 RAM 太多,因此我的 aws t2.micro 实例无法做到这一点。

【问题讨论】:

  • 当初为什么选择 JRuby?是的,就像 CRuby 一样,您需要一个单独的 Ruby VM 来将 sidekiq 作为单独的进程运行。
  • 需要jruby,因为应用程序必须部署在客户端的服务器(也是t2micro)上,所以代码应该以某种方式混淆。

标签: ruby-on-rails-4 jruby sidekiq


【解决方案1】:

由于高内存消耗,您的 AWS 微实例最终会阻塞。有一种方法可以同时运行 Ruby App 和后台进程 sidekiq

  • 您可以使用sidekiq 启动另一个 EC2 微控制器。您的应用程序实例和sidekiq 服务器将共享相同的Redis 实例。因此,您的 BG 处理不会中断。

  • 另一种方法是启动 Heroku 免费测功机。

  • 或者您可以转到CRubyMRI

希望对你有帮助

【讨论】:

  • 如果我使用另一个实例,sidekiq 服务器中的 Rails 将被配置为远程访问应用服务器数据库?
  • 是的,您还可以将同一个应用程序数据库共享给多个应用程序。你可能在某处见过DATABASE_URL
  • 在您的情况下,您还必须共享 redis 实例;你可以使用redistogo之类的服务
猜你喜欢
  • 1970-01-01
  • 2014-09-26
  • 2019-03-09
  • 2018-09-09
  • 2012-10-24
  • 1970-01-01
  • 2023-01-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多