Class: Karafka::Cli::Server
Overview
Server Karafka Cli action
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#call ⇒ Object
Start the Karafka server.
Methods inherited from Base
bind_to, desc, #initialize, option
Constructor Details
This class inherits a constructor from Karafka::Cli::Base
Instance Method Details
#call ⇒ Object
Start the Karafka server
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/karafka/cli/server.rb', line 15 def call validate! puts 'Starting Karafka server' cli.info if cli.[:daemon] FileUtils.mkdir_p File.dirname(cli.[:pid]) daemonize end # We assign active topics on a server level, as only server is expected to listen on # part of the topics Karafka::Server.consumer_groups = cli.[:consumer_groups] # Remove pidfile on stop, just before the server instance is going to be GCed # We want to delay the moment in which the pidfile is removed as much as we can, # so instead of removing it after the server stops running, we rely on the gc moment # when this object gets removed (it is a bit later), so it is closer to the actual # system process end. We do that, so monitoring and deployment tools that rely on pids # won't alarm or start new system process up until the current one is finished ObjectSpace.define_finalizer(self, proc { send(:clean) }) Karafka::Server.run end |