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名'
##参考