読者です 読者をやめる 読者になる 読者になる

to the scheduling jobs without add-ons on heorku

heroku

英語わかんないしそーゆーのやめて。やめて!やめてよ!

heroku で cron 的な動作をさせるには cron add-on があるけどそれはもう非推奨で、これからは Heroku Scheduler add-on を使いましょう。以上。

が、 Heroku Scheduler というか add-on 使うにはアカウントの verify がいるのでつまりクレカ登録が要るのでのっぴきならない事情(なんかヘタこいた時に地獄の請求されたりしたら逃げ切れるようにクレカは入れたくない)によりなんとか add-on 無しで cron 的な事できないかなーとかポリッピー (High Quality Peanuts) 食べながら検索してたら有ったのでメモ。

ぁゎゎゎ、インターネット便利ですぅー。

# crock.rb
require "clockwork"
include Clockwork

handler do |job|
  case
  when "ftc.claim"
    Google.pay(22500000, 'USD') # Safari Sucks
  end
end

every(1.day, "ftc.claim", at: "02:30", tz: "Japan")
# Procfile
clock: bundle exec clockwork clock.rb

とか書いて git push. heroku コマンドにて worker の設定。 web dynos を閉じ worker dynos(clockwork) を一つ走らせる。

$ heroku scale web=0 clock=1

ちゃんとできてれば ps コマンドが以下みたいになるはず。
これでちゃんとできてると言えるのかは知らん。

$ heroku ps
=== clock: `bundle exec clockwork clock.rb`
clock.1: up for 5s

そしたら後は $ heroku logs --tail でログ追えばいいじゃない。

多分これでいいはず。知らん。怖い。

なんでもいいけど heroku ps が3回に1回は socket error 吐いて怖かったです。