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
間違った方法を使用していますか?