2017-02-08 7 views
0

以下のRubyコードは、RabbitMQイベントを処理します。私はRuby用のBunnyとsneakers gemを使用しています。すべての可能性のあるイベントに取り組んでいるとは思うが、地方のチャンネルは未実装のメッセージで積み重なっている。RabbitMQは、拒否または承認されたにもかかわらずスタックされていないメッセージを積み重ね続ける

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

これは私のRubyコードです:

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!と間違っているこれは、ログのようなものを言うたびになりますか?一時間何時間も立ち往生した。私はack!ですべてのreject!を変更しようとしましたが、何も助けてくれないようです。

多分私はrescue間違った方法を使用していますか?

答えて

0

少し遅れて答えましたが、この問題に直面して解決策は常にack!またはreject!のいずれかになります。

ので、この変更:

return reject! 

reject! 
return 

関連する問題