bug fix and log optimization
breaking change:
real_producer was return an producer now passing a block and return yield result.
def real_producer(msg, &block)
if @producers.size.zero?
PulsarSdk.logger.warn(__method__){"There is no available producer for topic: 「#{@topic}」, skipping action!"}
return
end
route_index = msg.nil? ? 0 : @router.route(msg.key, @producers.size)
yield @producers[route_index]
end
use case
producer.real_producer(p_msg) do |producer_|
producer_.execute(base_cmd, p_msg)
producer_.receipt
end