2017-02-08 7 views
0

My Ruby code under обрабатывает события RabbitMQ. Я использую Bunny для Ruby и sneakers gem. Хотя я думаю, что действую на всех возможных событиях, локальные каналы укладываются в неуправляемые сообщения. Это происходит каждый раз, когда говорит, что журнал что-то вроде:RabbitMQ хранит неупакованные сообщения, хотя они отклонены или подтверждены

sneakers_1   | I, [2017-02-08T19:03:31.088857 #14] INFO -- : Rejecting 172.21.0.21. Name invalid tld 

Это мой рубин код:

require 'sneakers' 

class EventProcessor 
    include Sneakers::Worker 
    from_queue :edge_requests 


    def work(msg) 
    msg = JSON.parse(msg) 
    domain = msg[':path'].split('/').first 
    domain = domain.downcase.sub(/^www\./, '') 
    domain = Domain.find_or_initialize_by(name: domain) {|domain| domain.status = :active} 
    unless domain.valid? 
     Rails.logger.info "Rejecting #{domain.name}. #{domain.errors.full_messages.join(',')}" 
     reject! 
     return 
    end 
    domain.persisted? ? domain.touch : domain.save! 
    ack! 
    rescue 
    Rails.logger.error $! 
    reject! 
    end 
end 

Что-то случилось с моим reject! возможно? вид застрял в течение нескольких часов. Я попытался изменить все reject! на ack!, но ничего не помогает.

Возможно, я использую rescue неправильным способом?

ответ

0

Немного поздно ответ, но столкнулся с этой проблемой, и решение всегда возвращается либо ack!, либо reject!.

Так это изменить:

reject! 
return 

в

return reject! 

 Смежные вопросы

  • Нет связанных вопросов^_^