我正在使用 collectiveidea delayed_job 2.1.4,即使作业被处理并从队列中删除,似乎也从未调用过 execute 方法。我错过了什么吗?
我在 Heroku 上使用 Rails 3.0.5
在控制器中:
Delayed::Job.enqueue FacebookJob.new
在作业类中:
class FacebookJob
def initialize
end
def perform
fb_auths = Authentication.where(:provider => 'facebook')
fb_auths.each do |auth|
checkins = FbGraph::User.new('me', :access_token => URI.encode(auth.token)).checkins
if checkins != nil
checkins.each do |checkin|
[...]
end
end
end
end
end
(全文:https://gist.github.com/966509)
简单的答案是:DelayedJob 知道身份验证和 FBGraph::User 类吗? 如果没有,你将看到你所描述的行为:这些项目将从队列中静默地删除。
- 请参阅延迟作业 Wiki 中的延迟作业 Wiki 中的此条目。
- 尝试在 facebook_job.rb 文件中添加"需要身份验证"和"要求fb_graph"(或其他任何内容)。