Мне нужно выражение cron - PullRequest
0 голосов
/ 18 февраля 2019

Мне нужно выражение cron для выполнения некоторого кода точно в 5:30 am день недели.

Я пробовал это

30 5 * * 1-5

, но оно выполняется в 22:30. Поиск в интернетенайди это

0 30 5 ? * MON,TUE,WED,THU,FRI *

но ruby ​​покажи мне сообщение об исключении, говорящее это:

C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rufus-scheduler-3.5.2/lib/rufus/scheduler/jobs.rb:674:in `next_time_from': undefined method `next_time' for nil:NilClass (NoMethodError)
    from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rufus-scheduler-3.5.2/lib/rufus/scheduler/jobs.rb:668:in `set_next_time'
    from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rufus-scheduler-3.5.2/lib/rufus/scheduler/jobs.rb:636:in `initialize'
    from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rufus-scheduler-3.5.2/lib/rufus/scheduler.rb:617:in `new'
    from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rufus-scheduler-3.5.2/lib/rufus/scheduler.rb:617:in `do_schedule'
    from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/rufus-scheduler-3.5.2/lib/rufus/scheduler.rb:224:in `cron'
    from E:/Marcos_Guerra/RubyWorkspace/calisoft-suite/Proyectos/RedmineApi/api.rb:30:in `<main>'

это мой код:

ENV['TZ'] = 'America/New_York'

scheduler = Rufus::Scheduler.new
scheduler.cron '0 30 5 ? * MON,TUE,WED,THU,FRI *' do
    begin
      # do something that might fail...
      # every day of the week at 05:30 am
      puts RedmineConnector.resetYourLife(user,pass)
    rescue => e

    end
  end
sleep 3

Я использую RufusGem

1 Ответ

0 голосов
/ 19 февраля 2019

В соответствии с проектом README вы можете указать задание cron с часовым поясом следующим образом:

scheduler.cron '30 5 * * 1-5 America/New_York' do
  # ...
end

Это означает означает "ровно 5:30:00 по будням ", по вашему желанию.

...