поэтому некоторые контексте, я получил несколько советов здесь:Странное поведение с Resque планировщик заданий
а и были завязывания реализовать его сегодня. Кажется, я не могу заставить его работать. это мой планировщик задания, который используется, чтобы переместить мои вопросы вокруг между задержанной очередью и готово к отправке из очереди (я так решил использовать электронную почту вместо SMS)
require 'Assignment'
require 'QuestionMailer'
module SchedulerJob
@delayed_queue = :delayed_queue
@ready_queue
def self.perform()
@delayed_queue.each do |a|
if(Time.now >= a.question.schedule)
@ready_queue << a
@delayed_queue.delete(a)
end
end
push_questions
end
def self.gather()
assignments = Assignment.find :all
assignments.each do |a|
@delayed_queue << a unless @delayed_queue.include? a
end
end
private
def self.push_questions
@ready_queue.each do |a|
QuestionMailer.question(a)
end
end
end
Я использую обратный вызов on_create для вызывать метод сбора каждый раз, когда создается присваивание, а затем выполнять действие фактически выполняет отправку писем при выполнении resque.
Я получаю странную ошибку от обратного вызова. undefined method `include?' for :delayed_queue:Symbol
здесь код из модели присвоения
class Assignment < ActiveRecord::Base
belongs_to :user
belongs_to :question
attr_accessible :title, :body, :user_id, :question_id , :response , :correct
after_create :queue_assignments
def grade
self.correct = (response == self.question.solution) unless response == nil
end
def queue_assignments
SchedulerJob.gather
end
Любые идеи, что происходит? Я думаю, что это проблема с моим пониманием того, как работает эта очередь с реск-планировщиком. Я предположил, что если очереди были похожими на список объектами, то я мог бы работать на них, но кажется, что вместо символа, такого как include, есть символ? Я предполагаю, что нотация для добавления чего-либо к ней также недействительна. Кроме того, пожалуйста, сообщите, если это не так, как идти об обработке такого рода планирования заданий
Вы перезапущен приложение после добавления 'метода gather' к' SchedulerJob'? –
Приятно, так что изменилось сообщение об ошибке, но теперь я думаю, что у меня возникло фундаментальное непонимание того, как работает реск-планировщик. обновить орган вопроса, чтобы отразить это. – bluedevil
Я отправил ответ на ваш первоначальный вопрос ниже. Если у вас новые проблемы сейчас, лучше всего открыть новый вопрос, посвященный вашей текущей проблеме (например, как правильно использовать планировщик resque) –