LoginSignup
0
0

More than 1 year has passed since last update.

holiday_japanを使って平日のみcronを実行させる

Posted at

gemのholiday_japanを使って平日のみ(土日祝日以外)taskが実行されるようにしたい。

前提

現在のQiitaの記事投稿状況をSlackに通知してくれるbotがあり、その通知を平日19時に実行されるようにしたい。
gemのholiday_japanを使用したい。

  • exitの引数がtrueだったら正常終了で0、falseの場合1を引数に指定したとみなさる

参考:https://docs.ruby-lang.org/ja/latest/method/Kernel/m/exit.html

#!/usr/bin/env ruby
require 'bundler/setup'
require 'holiday_japan'

exit(HolidayJapan.check(Date.today))
  • 「平日19時」だけ実行したい
  • job_typeを指定することでコマンドをつなげられる
  • ||は左側が値が返ってくる(=true)のとき、右側も実行される
config/schedule.rb
...
job_type :script, "cd :path && :environment_variable=:environment bundle exec :task"
every '0 19 * * mon-fri' do
  script 'scripts/check_holiday || bundle exec rake namespace名:task名'
end

上記が実行されると下のコマンドで実行されることになる

0 19 * * mon-fri /bin/bash -l -c 'cd /futurama && RAILS_ENV=production bundle exec scripts/check_holiday || bundle exec rake namespace名:task名'

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0