Heroku で毎時間ホストされているデータベースを埋めるために、外部 API を呼び出す必要があります。
この目的のために、外部 API からすべてのデータを取得し、stdout に出力する ruby スクリプトを作成しました。さて、これらの結果をデータベースに保存したいと思います。それにはさまざまな方法があります(より良い方法を知っている場合はコメントしてください)。
私が持っているもの(制約):
- Heroku 上で動作する Ruby on Rails アプリケーション
- Heroku でホストされている PG データベース
- 「車」モデル、「タイトル」、「説明」、「価格」属性、および「ユーザー」モデルからの他の 1 つのネストされた属性 (PG と同じスキーマ)。
- 異なる外部 API を照会する Ruby スクリプト
- Ruby スクリプトは、毎時間 / 2 時間 / 日ごとに呼び出す必要があります。スクリプトは約 10 分間実行されます -> 結果の数に応じて 2 時間
それを行うための私の3つの異なる方法:
- EC2 インスタンスでスクリプトを実行し、Ruby on Rails REST API ではなく、データベースへの直接の外部ログインをデータベースに入力します。問題は、Ruby on Rails バリデーターを要求しないことです。たとえば、データベースが変更された場合や、一部のデータを検証する必要がある場合は要求されません。
- EC2 インスタンスでスクリプトを実行し、データベースに RoR REST API への cll を入力して、JSON / XML でデータを入力します。問題は、API からの呼び出しが 1000 回を超えると、dyno が高負荷で苦しむ可能性があることです。
- Heroku の特定の dyno でスクリプトを実行する (いくつかの情報が必要です。Heroku でいくつかの情報が見つかりません)
- (良い方法をご存知の方はコメントください)
どう思いますか ?明日「車」のモデルを変更する場合、古いモデルと新しいモデルを簡単に切り替えられるようにする必要があります。
ありがとうございました。