2013-04-07 30 views
2

試圖使用ResqueScheduler enqueue_atEnqueue_at(..)在rails應用程序中的錯誤。 Resque調度提出了NoQueueError

Resque::NoQueueError in QuestionsController#create 
Jobs must be placed onto a queue. 

在這裏,我不斷收到此錯誤是調用它的類:注意after_create回調。

在問題控制器中出現錯誤的原因是因爲有on_createQuestion的回調,這反過來又爲用戶創建了一個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 

回答

3

好了,所以後一噸的故障排除和敲我的頭靠在牆上,我終於得到它的工作。

實例變量必須命名爲@queue。問題是我在命名它@ready_queue。我想resque scheduler需要這個。無論如何。它現在似乎在工作。到下一個錯誤。

相關問題