我在尝试使用 ResqueScheduler enqueue_at 时不断收到此错误
QuestionsController#create 中的 Resque::NoQueueError 作业必须放在队列中。
这是调用它的类:注意 after_create 回调。
在 Questions 控制器中引发错误的原因是因为有一个回调 on_create
,Question
反过来,它会Assignment
为用户创建一个。
这是这篇文章的后续问题:
我尝试按照此视频中给出的示例进行操作: http ://railscasts.com/episodes/271-resque?view=comments
. . .以及阅读我在 Resque 调度程序上可以在线找到的所有内容(包括他们的文档:https ://github.com/bvandenbos/resque-scheduler )
我有理由相信我做对了,此时我很沮丧。这似乎是一个非常罕见的在线错误,几乎没有文档。
需要“scheduler_job” 类分配 ActiveRecord::Base 属于_to:用户 属于_to:问题 attr_accessible :title, :body, :user_id, :question_id , :response , :correct after_create :queue_assignments before_destroy :remove_from_queue 默认等级 self.correct = (response == self.question.solution) 除非 response == nil 结尾 def queue_assignments Resque.enqueue_at(self.question.schedule , SchedulerJob , :id => self.id) 结尾 def remove_from_queue Resque.remove_delayed(SchedulerJob, :id => self.id) 结尾 def sendAlertEmail QuestionMailer.question(self) 结尾 def as_json(options={}) { :正确 => 正确, :created_at => created_at, :id => id, :question_id => question_id, :响应=>响应, :updated_at => updated_at, :user_id => user_id, :question => self.question } 结尾 结尾
这是工作:
需要“分配” 需要“问题邮件” # 当我把它改成一个类时这也不起作用 模块调度器作业 #this 也不适用于 :ready_queue 但我不知道有什么区别 @ready_queue = "ready_queue" def self.perform(id) @assignment=assignment.find_by_id(id) @assignment.sendAlertEmail 结尾 结尾