每隔10秒从外部API读取数据

时间:2017-03-23 15:34:50

标签: ruby-on-rails api

我需要每隔10秒从外部API读取一些数据并将其保存到我的数据库中。我曾尝试用cron作业 - 宝石每次,但它不允许小于1分钟的时间间隔。 Rails 4+每隔几秒运行一次后台工作的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

只需将resqueresque-scheduler一起使用即可运行这些后台作业。

例如,鉴于这项工作:

class ReadDataFromApiJob
  def self.perform
    data = read_from_api
    save(data)
  end

  def read_from_api
    # ...
  end

  def save(data)
    # save to db
  end
end

您可以创建一个预定作业,以便在config/resque_schedule.yml文件中每10秒运行一次:

---
ReadDataFromApiJob:
  every:
    - 10s
  class: ReadDataFromApiJob
  queue: my_queue
  description: This job will read and save data from the api every 10 seconds