Heroku でデプロイされた Rails アプリで、 Clockwork gemを使用してジョブをスケジュールします。
clock.rb
なじみのない方のために説明すると、基本的にアプリのルートにあるファイルから読み取ります。
# config.rb
# Schedule every Monday @ 13:00 UTC
every(1.week, "some description", at: "Monday 13:00", tz: "UTC"){
`rake clock_tasks:my_task`
}
...そして、クロック プロセスを実行する専用の Dyno があります。
# Procfile
...
clock: bundle exec clockwork clock.rb
...
クロック ファイルをハードコーディングしたくない場合はどうすればよいでしょうか。clock.rb
アプリの起動時に ERB を使用して動的に生成できるようにしたいと考えています。これにより、環境構成などに基づいて特定のタスクをスケジュールするかどうかを柔軟に設定できます...
Heroku では
clock.rb
、初期化ステップでファイルを生成して書き込むことができるように、いつでもローカル ファイルシステムにファイルを「書き込む」ことができますか?bundle exec
ファイルを作成した後まで、コマンドで dyno を開始する実行を遅らせる方法はありclock.rb
ますか?bundle exec clockwork...
偽の/空のファイルから始めて、初期化中に新しいファイルを作成することもできますが、コマンドを再起動してクロックが再びそれを取得する方法が必要です。
他の創造的な解決策は高く評価されます。
ありがとう!