How to check if whenever gem is working?
Asked Answered
M

1

5

I've got the following configuration. I've installed whenever gem, created shedule.rb:

# Learn more: http://github.com/javan/whenever

every 6.hours do
    runner "Part.check_status_update"
end

In part.rb model I have corresponding method.

A. How can I check if whenever runs? As I understand it should only modify the crontab after whenever command in the bash, yes?

B. If the method is not triggered - then how can I debug the scheduled jobs? If I put into my method puts statements - where shall they be stored or outputted?

Matilda answered 8/6, 2015 at 21:31 Comment(1)
'Whenever' command just outputs lines in 'crontab' syntax. To actually update schedule you should run 'whenever --update-crontab'. But notice it will erase existing crontab!Decomposed
R
8

You need to define a log file, which will then receive any output from your Part.check_status_update call (such as puts calls). You can set a default log file for all of your jobs at the top of your schedule.rb file, such as:

set :output, '/path/to/file.log'

For example, to log to Rails.root/log/whenever.log:

set :output, 'log/whenever.log'

You can also define the output per-task:

runner "Part.check_status_update", :output => 'log/check_status_update.log'

See the Whenever wiki entry on the subject for a full explanation of details and options, such as logging errors to a separate file.

Reviere answered 8/6, 2015 at 22:30 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.