class GRPC::Kit::Queue::Worker::Runner
Public Class Methods
new(params)
click to toggle source
# File lib/grpc/kit/queue/worker/runner.rb, line 6 def initialize(params) @topic_name = params[:topic] @subscription_name = "#{params[:topic]}.#{params[:worker]}" @worker_class = params[:worker] end
run!(params)
click to toggle source
# File lib/grpc/kit/queue/worker/runner.rb, line 12 def self.run!(params) new(params).run! end
Public Instance Methods
run!()
click to toggle source
# File lib/grpc/kit/queue/worker/runner.rb, line 16 def run! if worker.nil? GRPC.logger.error("class #{@worker_class} does not exist") exit end subscription.listen do |msg| worker.new(msg).call end end
Private Instance Methods
pubsub()
click to toggle source
# File lib/grpc/kit/queue/worker/runner.rb, line 43 def pubsub @pubsub ||= Google::Cloud::Pubsub.new end
subscription()
click to toggle source
# File lib/grpc/kit/queue/worker/runner.rb, line 35 def subscription @subscription ||= topic.subscription(@subscription_name) || topic.subscribe(@subscription_name) end
topic()
click to toggle source
# File lib/grpc/kit/queue/worker/runner.rb, line 39 def topic @topic ||= pubsub.topic(@topic_name) || pubsub.create_topic(@topic_name) end
worker()
click to toggle source
# File lib/grpc/kit/queue/worker/runner.rb, line 29 def worker Object.const_get(@worker_class) rescue NameError nil end