質問: 1. A というサイトの更新情報を RSS から定期的に取得したい 2. CakePHP の時は、 `app/Console/Command/CrawlShell.php` としていた 3. Ruby on Rails の場合はどこにファイルを作成したらいいでしょうか? 現状は `app/controller/crawl.rb` というファイルを作成して crontab などで定期実行しようと思っていますが、このやり方はあっていますか? それとも、定期実行するファイルの置き場所の規約などはありますか? ご回答おまちしております。
回答: railsアプリの環境下で動作するコマンドの実行方法は、標準で用意されているものは以下があります。 * rails runner で実行(処理は `lib/**/*.rb` に実装する) * 参考コード(redmine):lib/redmine/info.rb * 実行コマンド:`bin/rails runner 'puts Redmine::Info.environment'` * rakeタスク実行(処理は `lib/tasks/*.rake` に実装する) * 参考コード(redmine)lib/tasks/locales.rake * 実行コマンド:`rake locales` アプリケーション内からも同じ処理を共用することがないのであれば、とりあえず`lib/tasks/crawl.rake`にしておけばよいと思います。 * 参考:Gist「crawl.rake」検索 **【補足】** 自分で使ったことないですが、cronで定期実行する処理を使用する場合、wheneverというgemを使うと便利なようです。これは、dbに登録する内容をmigrationファイルで管理するように、cronに登録する内容を管理するもののようです。 * 検索「rails 定期実行」