私は気象APIを使って、別のAPIからデータを取得、処理、保存します。日々の更新(URL情報のリクエスト、JSON/XMLデータの取得、データの構築、データベースへの保存)を行うには、ActiveJobを使用するのが最も適切な方法だと思います。ActiveJob in Railsをスケジュールする
定期的にジョブを実行するようにスケジュールを設定します。私はJavaのUNIX cronやSpring @Scheduledアノテーションのようなものが好きです。
スケジューリングジョブについてもう1つの質問がスタックオーバーフロー(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スクリプトを実行しています。 –
外部宝石とActiveJobの関係を明確にするために、AJはさまざまなキューアダプタに_commonインターフェイスを提供しています。つまり、Resqueなどの同じコードを簡単にSidekqに切り替えることができます。しかし、あなたはレールコアの外でいくつかのツールを使用しても、AJからの多くの利益を得ることはできません。 – Glyoko