У меня есть простое задание resque, которое принимает идентификатор модели, выбирает его, а затем вызывает метод для выбранного элемента.
class CupcakeWorker
@queue = :cupcake_queue
def self.perform(cupcake_id)
@cupcake = Cupcake.find(cupcake_id)
@cupcake.bake
end
end
Я ставлю его в очередь из действия контроллера, используя метод 'enqueue'
def bake
Resque.enqueue(CupcakeWorker, params[:cupcake_id])
render :json => 'Baking...'
end
Задание ставится в очередь и выполняется правильно. Однако, если я изменю данные записи в базе данных и продолжу ставить задание в очередь, операция не будет выполняться с использованием новых значений.
Я могу получить его только для извлечения новых значений, если перезапущу рабочий процесс resque. Resque кеширует объект? Есть ли способ обеспечить его повторное получение из базы данных каждый раз, когда вызывается работник?