eco0o0o0のブログ

たまにプログラミングしてる。検索してもでてこないことをたまに記事にします。

Heroku schedulerでタスクを30分毎に起動してみた。

f:id:eco0o0o0:20180314212617p:plain

自分以外にも同じ症状の人がいるかもしれないので記事にしておきます。

heroku schedulerは定期的に処理を実行してくれるアドオンで、 とても便利ですが、標準のタスクの起動間隔が

  • 10分おき
  • 1時間おき
  • 1日おき

でしか選べず、細かく指定できないところがネックです。

ですが、普通に30分ごとに起動する方法があるのでそれを書いていきます。

まず、herokuのpersonal appからアプリを選択します。 そしてInstalled add-onsからHeroku Schedulerを選択(表示されていない場合はConfigure -Add-onsで追加)

schedulerの設定のページに飛ぶので、Add new jobで起動したいスクリプトを入力します。 pythonなら、"python gahahahahahaha.py"という感じです。

次に、FREQUENCYで"Hourly"を選択してsaveでタスクが生成されます。 これを2つつくります。

以上で完成です。 1つ目と2つ目の間隔を30分あければ実質30分おきに起動していることになっています。

ちなみに自分はこうすると2つ目のタスクが読み込まれないので1時間おきにしか起動できませんでした。

解決策としては3つ目のタスクを作成し、それを"Daily"にすればなぜか2つめのタスクも読み込まれました。 ^^O f:id:eco0o0o0:20171126143924p:plain

この方法を使えば30分未満の起動間隔のタスクを作れるんじゃないかなと思います。