web-dev-qa-db-ja.com

Herokuでcronジョブを実行する「いつでも」gem

いつでも宝石を使うアプリを作りました。 gemはcronジョブを作成します。ローカルで動作させましたが、heroku杉では動作していません。これを行うコマンドは何ですか?

ランニング:

heroku run whenever --update-crontab job1

動かない

43
AdamT

短い答え:スケジューラアドオンを使用: http://addons.heroku.com/scheduler

長い答え:heroku runを実行すると、

  1. ダイノをスピンアップ
  2. あなたのコードをその上に置きます
  3. コマンドを実行し、完了するまで待ちます
  4. ダイノを捨てる

Crontabに加えた変更はすぐに破棄されます。すべてが短命であり、herokuでファイルを編集することはできません。新しいコードをプッシュするだけです。

70
Will

Heroku Schedulerアドオンを追加する必要があります。

ダッシュボードから直接、または次のコマンドを使用して追加できます。

  1. add-onをインストールします。

    heroku addons:create scheduler:standard
    
  2. lib/tasksでRakeタスクを作成します

    # lib/tasks/scheduler.rake
    task :send_reminders => :environment do
      User.send_reminders
    end
    
  3. ジョブのスケジュール

    • アクセスHeroku Dashboard
    • appを開きます
    • add-onsリストからSchedulerを選択します
    • Add Jobをクリックし、タスクを入力して頻度を選択します。

      例えばrake send_remindersを追加し、"Daily"および"00:00"を選択して、毎日午前0時にリマインダーを送信します。

Heroku add cron task

8
Deepak Mahakale