試圖使用ResqueScheduler enqueue_atEnqueue_at(..)在rails應用程序中的錯誤。 Resque調度提出了NoQueueError
Resque::NoQueueError in QuestionsController#create Jobs must be placed onto a queue.
在這裏,我不斷收到此錯誤是調用它的類:注意after_create回調。
在問題控制器中出現錯誤的原因是因爲有on_create
爲Question
的回調,這反過來又爲用戶創建了一個Assignment
。
這是這篇文章的後續問題:
Strange behavior with a resque scheduler job
我試圖按照此視頻givien例子: http://railscasts.com/episodes/271-resque?view=comments
。 。 。以及閱讀基本上我可以找到Resque scheduler在線的所有東西(包括他們的文檔在這裏:https://github.com/bvandenbos/resque-scheduler)
我有理由相信我在做這個權利,並在這個時候相當沮喪。這似乎是一個非常罕見的錯誤,只有很少的文檔。
require "scheduler_job" class Assignment ActiveRecord::Base belongs_to :user belongs_to :question attr_accessible :title, :body, :user_id, :question_id , :response , :correct after_create :queue_assignments before_destroy :remove_from_queue def grade self.correct = (response == self.question.solution) unless response == nil end def queue_assignments Resque.enqueue_at(self.question.schedule , SchedulerJob , :id => self.id) end def remove_from_queue Resque.remove_delayed(SchedulerJob, :id => self.id) end def sendAlertEmail QuestionMailer.question(self) end def as_json(options={}) { :correct => correct, :created_at => created_at, :id => id, :question_id => question_id, :response => response , :updated_at => updated_at, :user_id => user_id, :question => self.question } end end
這裏是工作:
require 'Assignment' require 'QuestionMailer' # this didnt work when i changed it to a class either module SchedulerJob #this didnt work with :ready_queue either but I dont know what the difference is @ready_queue = "ready_queue" def self.perform(id) @assignment=Assignment.find_by_id(id) @assignment.sendAlertEmail end end