如何在任务之间保持状态

时间:2016-07-18 13:21:16

标签: ruby-on-rails ruby

我正在尝试编写一个应用程序:

  1. 每N分钟从外部服务API获取一些数据(让它只是一个数字),
  2. 如果收到的数据与之前保存的状态不同,则执行操作。
  3. 为实现这一目标,我有一个控制器:

    class MyController < ApplicationController
    
        # to be called every N minutes
        def check
            if @saved_state.nil?
                @saved_state = get_from_API
                return
            end
    
            @new_state = get_from_API
    
            if @saved_state != @new_state
                process
                @saved_state = @new_state
            end
        end
    
        def process
            # some data processing here
        end
    
        def get_from_API
            # getting data from external API here
        end
    end
    
    1. 如何在支票通话之间保存状态?实现所述目标的正确方法是什么?
    2. 是否可以使用控制器,或者是否有更合适的解决方案,另一种方法?
    3. 我计划通过cron使用rake任务每N分钟调用一次检查:类似MyController.new.check。可以,还是有另一种方法可以在服务器上定期调用某个app方法?

0 个答案:

没有答案