我正在做一個天氣API,它將從另一個API獲取,處理和保存數據。爲了獲得每日更新(請求URL信息,獲取JSON/XML數據,構建我的數據並將其保存到我的數據庫)我認爲最合適的方法是使用ActiveJob。在Rails中安排ActiveJob
我想安排作業定期運行。我想爲UNIX的cron或Spring @Scheduled註釋用於Java。
我已經看到關於調度作業堆棧溢出(this one)的另一個問題,但他們使用像任何時候外部寶石。我一直在尋找一個允許在Rails API中執行作業的後端(Backends),但似乎沒有可用的任務可以安排作業。
Rails框架(版本5)上有什麼可以讓我做我想做的事嗎?或者我必須使用外部寶石?
非常感謝。
編輯 如果是有用的人,這裏是工作模式:
class ImportDailyDataJob < ApplicationJob
queue_as :default
def perform(*args)
# Do something later
end
private
def prepare_request
# return the request object
end
def request_data
# Get the data from external API.
end
def process_data
# Process the data
end
def save_processed_data
# Saves the data to the database
end
end
上投票,因爲一個唯一的方式來做到這一點會很好。我個人使用cron作業來運行rails腳本。 –
只是澄清一些關於外部寶石VS ActiveJob:AJ提供了一個_common interface_到各種隊列適配器使得它使用相同的代碼,例如Resque,可以很容易地切換到說,Sidekiq。但是,您並沒有從AJ _without_在rails core之外使用某些工具獲得太多好處。 – Glyoko