比如我想要它每双周周五的上午 10 点执行,是不是只能写成 every 2.weeks, :at => '10:00 am' do 然后在周五的时候把它加入时间表?似乎有点诡异的样子……
every 2.weeks, :at => '10:00 am' do
什么是双周,从哪算起?
结合下 date 判断单双周,再设置一个 job_type 把 date 判断添加到前面应该可以了。
date
job_type
job_type :even_week_runner, "[ $(($(date +%W) % 2)) -eq 0 ] && cd :path && script/rails runner -e :environment ':task' :output" every :friday, :at => '10:00 am' do even_week_runner "MyModel.some_process" end
mac:SpecialBlog special$ bundle exec whenever 0 10 * * 5 /bin/bash -l -c '[ $(($(date +\%W) \% 2)) -eq 0 ] && cd /xxxxx && script/rails runner -e production '\''MyModel.some_process'\'''
#1 楼 @pynix 一般来说一年的 1 月 1 日所在的那周就是该年的第 1 周,然后按序号,单数叫单周双数叫双周…… #2 楼 @special 唔,似乎也只能这么办了,再判断一次……谢谢
双周概念比较模糊,其实不太好写,写个大概的意思
every "0 10 1-7,15-21 * 5" 或者 every "0 10 8-14,22-28 * 5"
这个也太简单了吧,时间 format 当中%U,代表是每年的第几周,你处理下偶数不就行了?