【问题标题】:Running rufus scheduler on multiple nodes problem?在多个节点上运行 rufus 调度程序问题?
【发布时间】:2011-09-08 17:46:06
【问题描述】:

在 Rails 3 应用程序中运行 rufus-scheduler 没有任何问题。

但由于我的应用程序在节点集群中运行,app1.myapp.com - app2.myapp.com, rufus-scheduler 正在运行作业应用程序(N)次。

如何让它只在一台服务器上运行?

【问题讨论】:

  • 您是如何导致运行 Rufus 调度程序进程的?什么代码运行它?

标签: ruby ruby-on-rails-3 rufus-scheduler


【解决方案1】:

你有没有想过这个幼稚的解决方案:

# at initialization

if `hostname -f` == 'app1.myapp.com'
  $scheduler = Rufus::Scheduler.start_new
  $scheduler.every '5s' do
    puts "hello world"
  end
else
  # we're on another host, do not schedule anything
  $scheduler = nil
end

?

【讨论】:

  • 不错的方法,但可能需要添加 redis-semaphore 或类似的东西来接管另一台主机上的调度程序,以防主服务器发生故障。也可能Socket.gethostname 比使用外部命令更好?
  • 正如所写,我的解决方案很幼稚。我相信 OP 会根据他的需要和背景对其进行改进。
猜你喜欢
  • 2012-05-25
  • 1970-01-01
  • 1970-01-01
  • 2020-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-21
相关资源
最近更新 更多