1

我正在尝试学习如何使用 gem clockwork。我只是想在我的 Mac 上测试并在开发日志上写一行。我把它设置为 3 分钟只是为了测试。

我在 lib/clock.rb 中有以下内容:

require 'clockwork'
module Clockwork
  handler do |job|
    puts "Running #{job} =================================="
  end
Clockwork.every(3.minutes, 'dailyjob')
end

然后我有 lib/tasks/dailyjob.rb

class DailyJob
  def perform
    Rails.logger.info "Daily Job ========================================="
  end
end

然后我通过控制台启动 Clockworks $ clockwork clock.rb。它启动,控制台每 3 分钟显示一次:

Running dailyjob ==================================
I, [2014-03-04T11:03:32.084240 #66442]  INFO -- : Triggering 'dailyjob'

但是,development.log 文件中没有显示任何内容。

谢谢您的帮助!

4

1 回答 1

2

根据docs,Clockwork 只会写入 STDOUT ,除非您另外配置它​​:

默认情况下,Clockwork 记录到 STDOUT。如果您更喜欢自己的记录器实现,则必须指定记录器配置选项。请参见下面的示例。

文档中的示例是这样的:

module Clockwork
  configure do |config|
    config[:sleep_timeout] = 5
    config[:logger] = Logger.new(log_file_path)
    config[:tz] = 'EST'
    config[:max_threads] = 15
    config[:thread] = true
  end
end
于 2014-03-04T18:18:12.173 回答