我正在尝试了解如何使用发条执行自定义代码。这是lib/clock.rb
Heroku 在其 devcenter 文档中使用的示例文件。
require File.expand_path('../../config/boot', __FILE__)
require File.expand_path('../../config/environment', __FILE__)
require 'clockwork'
include Clockwork
every(4.minutes, 'Queueing interval job') { Delayed::Job.enqueue IntervalJob.new }
every(1.day, 'Queueing scheduled job', :at => '14:17') { Delayed::Job.enqueue ScheduledJob.new }
什么是 IntervalJob 和 ScheduledJob?这些文件应该放在哪里?我想运行我自己的可以访问我的数据库记录的自定义作业。
编辑
这是我的/lib/clock.rb
require 'clockwork'
require './config/boot'
require './config/environment'
module Clockwork
handler do |job|
puts "Running #{job}"
end
every(2.minutes, 'Filtering Streams') { Delayed::Job.enqueue FilterJob.new}
end
这是我的/lib/filter_job.rb
class FilterJob
def perform
@streams = Stream.all
@streams.each do |stream|
# manipulating stream properties
end
end
end
我得到错误:
uninitialized constant Clockwork::FilterJob (NameError)
/app/lib/clock.rb:11:in `block in <module:Clockwork>'