2016-09-12 5 views
1

Я пытаюсь сделать простой запуск с использованием Resque 1.26.0 (и Redis-rb 3.3.1). Работа, похоже, не обрабатывает функцию perform, потому что resque-web обрабатывает каждое задание и показывает 0 сбоев. Работы также обрабатываются мгновенно.Rails 5 - Resque не обрабатывается заданная задача

Заданий ставятся в очереди от действия контроллера с

Resque.enqueue(TestJob, url) 

этой работой сам по себе выглядит как

class TestJob < ApplicationJob 
    @queue = :tags_queue 
    Logger.new("log/resque_worker_QUEUE.log").fatal("thing") 

    def self.perform(url) 
    Logger.new("log/resque_worker_QUEUE.log").fatal("other thing") 
    logger.fatal("more errors please") 

    myDivideByZeroVar= 1/0 
    raise "error" 
    Logger.new("log/resque_worker_QUEUE.log").fatal("other thing") 
    logger.fatal("more errors please") 
    end 
end 

Задача рек также установить:

require 'resque/tasks' 
task "resque:setup" => :environment 

redis-server является Бег.

Рабочий начинается с rake resque:work QUEUE=*. Использование verbose logging не показывает ничего полезного.

В файле журнала отображается только первая фатальная строка ошибки «вещь». Ни одна из других ошибок не регистрируется, которые находятся внутри perform.

Что я здесь делаю неправильно?

+0

В сети resque: сколько у вас работает рабочих? Увеличивает ли номер обработки каждый раз при запуске 'Resque.enqueue (TestJob, url)'? – XavM

+0

Работает один рабочий. Номер обработки увеличивается каждый раз, когда вызывается Resque.enqueue, но обрабатывается мгновенно. –

+0

Вы пытались включить beebug в первую строку своего метода выполнения? – XavM

ответ

0

Решено. Задание должно было быть вызвано с использованием ActiveJob вместо использования Resque.enqueue. TestJob.perform_later(url) работал просто отлично.