Rails 4:如何实现频繁的轮询任务(每10秒)

时间:2014-02-24 21:01:33

标签: multithreading ruby-on-rails-4

我正在开发一个Rails 4应用程序,需要每隔10秒轮询网络一些数据。 对等体是小型嵌入式系统,它返回time_stamp和我发布到DB的一些数据。我在Ubuntu 12.04 64位上使用MRI 2.0.0 + Rails 4.0.0。

以这种方式,我在application.rb中创建了一个“类似单身”的服务对象,并让它运行一个同步的轮询线程。此轮询器将我的ActiveRecord模型更新为DB。

我在Ruby / Rails中不推荐使用Threading。但不幸的是我找不到任何其他解决方案。这种轮询机制对应用程序数据捕获程序至关重要,并且正在耗费我的时间。

现在我有两个“不知道”:

1>这个应用程序结构有什么解决方案吗?线程是否可行? 2 - ;由于我仍处于开发模式,因此只有一个“瘦”运行。当我在nginx / apache部署后聚集3“thins”时,我的app会不会制动?

提前致谢。

1 个答案:

答案 0 :(得分:1)

结帐ResqueDelayedJobSidekiq。您希望有一个单独的进程来执行后台任务管理,因此您的Rails应用程序主要关注处理Web请求,而不是后台工作。