[解決済み】railsのcronジョブ:ベストプラクティス?
2022-04-14 02:27:27
質問
Rails環境でスケジュールされたタスクを実行するのに最適な方法は何でしょうか?スクリプト/ランナー?Rake?数分おきにタスクを実行したいです。
解決方法は?
私は、rakeのアプローチ(as supported by ヒーロク )
lib/tasks/cron.rakeというファイルを使って・・・。
task :cron => :environment do
puts "Pulling new requests..."
EdiListener.process_new_messages
puts "done."
end
コマンドラインから実行する場合、これは単に "rake cron" となります。このコマンドは、OSのcron/タスクスケジューラーに好きなように置くことができます。
アップデート これはかなり古い質問と回答です いくつか新しい情報があります。
- 私が参照した heroku cron サービスは、その後、次のものに置き換えられました。 Heroku スケジューラ
- 頻繁に発生するタスク(特にRails環境の起動コストを避けたい場合)には、システムクーロンを使ってスクリプトを呼び出し、(a) 安全でプライベートなWebhook APIを呼び出してバックグラウンドで必要なタスクを起動するか、または (b) 選択したキューイングシステムでタスクを直接キューに入れる方法が好ましいです。
関連
-
[解決済み】Bundler: コマンドが見つからない
-
[解決済み] Errno::EACCESS: パーミッションが拒否された @ dir_s_mkdir
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] 全ユーザーのcronジョブを一覧表示する方法を教えてください。
-
[解決済み] Ruby on RailsでJSON出力を "きれい "にフォーマットする方法
-
[解決済み] Ruby on Railsのマイグレーションで、カラムをユニークにしてインデックスを作成するにはどうすればよいですか?
-
[解決済み] 30秒ごとにcronを実行する
-
[解決済み】N分+オフセットごとにCronジョブを実行する
-
[解決済み】30分ごとに実行されるcronジョブを取得するにはどうしたらいいですか?
-
[解決済み】Rails: モデルがすでに存在するときに`rails generate scaffold`を実行するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】取得中。「プロジェクトのクローンとマイグレート後に、「マイグレーションは保留中です。この問題を解決するには 'bin/rake db:migrate RAILS_ENV=development' を実行してください。
-
[解決済み] サーバーに接続できませんでした。そのようなファイルまたはディレクトリがありません (PG::ConnectionBad)
-
[解決済み】Webpacker::Manifest::MissingEntryError【クローズド
-
[解決済み] Ruby on rails "No route matches" (ルートに一致するものがない)。
-
[解決済み] Rails ExecJS::ProgramError in Pages#home?
-
[解決済み] Ruby:Rubyの配列にinclude.の反対はある?
-
[解決済み] gemのアップデート後、"Asset was not declared to be precompiled in production "でテストが失敗する。
-
[解決済み] rails/rubyでgroup_byを使用する。
-
[解決済み] Ruby on Rails の新規セットアップ : "Expected string default value for '--rc'; got false (boolean)".
-
[解決済み] 未初期化の定数 "コントローラ名"