我是 Ruby 新手,使用 Bunny 来使用来自 RabbitMQ 的消息。
所以我的班级目前看起来大致是这样的:
class Consumer
include Validator
def initialize
#Start a RabbitMQ session
@rdSession = Session.new
@queueMain = rdSession.joinQueue('QueueMain')
@queueLittle = rdSession.joinQueue('QueueLittle')
...
@queueTen = rdSession.joinQueue('QueueTen')
goWork
end
def goWork
@queueMain.subscribe(:manual_ack => true) do |delivery_info, properties, payload|
goDoSomethingElse(payload)
end
....
@queueTen.subscribe(:manual_ack => true) do |delivery_info, properties, payload|
goDoAnotherPiece(payload)
end
end
我的问题是文件变得很长,所以我想以某种方式减少它。所以我想到的一件事是那些将加入队列的长列表移动initialize
到另一个文件中的人,因为它们是恒定的。
但是,正确的方法是什么,我应该创建一个模块,复制所有这些joinQueue
行,然后将它们goWork
作为常量引用,例如:QUEUEMAIN
?
任何想法/建议将不胜感激。
试图理解为此的良好设计?
谢谢。