Rails4.2で実装されたActive Jobを使って、特定のサイトのスクレイピングを定期的に行おうと考えています。Active Jobは、sidekiqやrescueというジョブを実行させるgemが何でも対応できるORMのようなものだと思っています。
[Ruby on Rails]Active Job – 複数のキューを優先順位をつけて実行する | Developers.IO
上記のサンプルを見たところ、下記のファイル構成になっていました。上のファイルが下のファイルを呼び出す形になっています。
0. /app/controllers/start_controller.rb
0. /app/models/task.rb
0. /app/jobs/my_job.rb
jobs/
以下のファイルは定期実行させる処理を記述したファイルを置くのはわかりました。しかし、この際のmodels
、controller
の役割がいまいちわかりません。
モデル
モデルはテーブル1つに対して1つ存在すると思っています。このようなタスクを呼び出すためだけのためにモデルを作成する必要はあるのでしょうか?直接コントローラから呼び出すのは良くないのでしょうか?
コントローラ
コントローラは特定のURLに対してルーティングされた後に実行する処理を記述するものと思っています。今回のようにジョブを実行するためのメソッドを用意した場合は、定期実行させるためにcurlなどをcronで使って定期的にリクエストを投げるのでしょうか?
ご回答、よろしくお願い致します。
t
あなたの回答
tips
プレビュー