在这里,你可以重构更多的东西,但基本上是的,你可以将提升移到一个模块,多亏了@Amadan,你可以
module GoWork
def goWork
@queues[:QueMain].subscribe(:manual_ack => true) do |delivery_info, properties, payload|
goDoSomethingElse(payload)
end
@queues[:QueTen].subscribe(:manual_ack => true) do |delivery_info, properties, payload|
goDoAnotherPiece(payload)
end
end
end
class Consumer
include Validator
include GoWork
QUEUE_NAMES = %w(QueueMain QueueLittle QueueTen)
def initialize
#Start a RabbitMQ session
@rdSession = Session.new
@queues = QUEUE_NAMES.map { |name| [name.to_sym, rdSession.joinQueue(name)] }.to_h
goWork
end
end
ruby style guide
建议用户使用
snake_case
CamelCase
类和模块定义,但我没有这样做,因为这不是你的问题。也建议使用
Rubocop
帮助你记住正确的风格。