2016-09-12 7 views
1

Resque 1.26.0 (및 Redis-rb 3.3.1)을 사용하여 간단한 작업을 대기열에 넣으려고합니다. resque-web이 각 작업을 처리 중이며 0 개의 실패를 표시하기 때문에 작업이 perform 기능을 처리하지 않는 것 같습니다. 작업도 즉시 처리됩니다.레일 5 - 큐에 대기중인 작업을 다시 처리하지 않음

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

redis-server은 다음과 같습니다

일자리는

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 

처럼 그 자체가 보이는 작업과 컨트롤러 액션에서 큐에 넣어 달리는.

근로자는 rake resque:work QUEUE=*으로 시작됩니다. 상세 로깅을 사용하면 아무 것도 유용하지 않습니다.

로그 파일에는 첫 번째 치명적인 오류 문자열 "thing"만 표시됩니다. perform 안에있는 다른 오류는 기록되지 않습니다.

내가 뭘 잘못하고 있니?

+0

웹에서 : 실행중인 근로자는 얼마입니까? 'Resque.enqueue (TestJob, url)'을 실행할 때마다 처리 번호가 증가합니까? – XavM

+0

하나의 작업자가 실행 중입니다. Resque.enqueue가 호출 될 때마다 처리 번호가 증가하지만 즉시 처리됩니다. –

+0

수행 방법의 첫 번째 행에 byebug를 포함 시키려고 했습니까? – XavM

답변

0

해결되었습니다. Resque.enqueue 대신 ActiveJob을 사용하여 작업을 호출해야했습니다. TestJob.perform_later(url)은 정상적으로 작동했습니다.