我在尝试使用 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
结尾
结尾