【发布时间】:2013-06-06 14:46:52
【问题描述】:
我有一个 Ruby 守护程序正在运行,它正在收集数据,比如温度。它每隔几秒钟收集一次,一旦达到一分钟,它就会计算出高、低和平均值,然后将它们保存到数据库中。在此步骤中还将进行进一步的计算。
现在我想更新 Ruby 代码并通过 Capistrano 魔法进行部署。
现在的问题是,如果我只是停止守护进程,我不会将当前分钟保存到数据库中。如果我现在启动新的守护进程,那一分钟已经开始了,所以我认为第一分钟是“脏”的,将等待下一个完整的分钟。所以,基本上,我现在有一个差距。
我可以启动一个新的进程/守护进程,开始收集数据。一旦获得足够的数据,它就会告诉旧的守护进程关闭。但是我怎样才能在这两个守护进程之间进行通信呢?
如果有人能指出我对此的想法,我会很酷。
Rails 应用程序也可用,可在浏览器中使用。理想情况下,我也可以与之交谈。
【问题讨论】:
-
您是否考虑过使用队列,这个队列服务器应该有良好的正常运行时间,并且有一个服务只是写入这个队列,所以其他进行计算的进程可能会有一点停机时间......跨度>
标签: ruby-on-rails ruby daemon