Class: Rubcask::Server::Runner
- Inherits:
-
Object
- Object
- Rubcask::Server::Runner
- Defined in:
- lib/rubcask/server/runner.rb,
lib/rubcask/server/runner/config.rb
Overview
ServerRunner runs a server alongside merge worker It supports graceful shutdown with Ctrl-c
Defined Under Namespace
Classes: Config
Instance Method Summary collapse
-
#close ⇒ Object
Stops the server.
-
#initialize(server_config: Rubcask::Server::Config.new, dir_config: Rubcask::Config::DEFAULT_SERVER_CONFIG, runner_config: Rubcask::Server::Runner::Config.new) ⇒ Runner
constructor
A new instance of Runner.
-
#start ⇒ Object
Starts the runner.
Constructor Details
#initialize(server_config: Rubcask::Server::Config.new, dir_config: Rubcask::Config::DEFAULT_SERVER_CONFIG, runner_config: Rubcask::Server::Runner::Config.new) ⇒ Runner
Returns a new instance of Runner.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/rubcask/server/runner.rb', line 13 def initialize( server_config: Rubcask::Server::Config.new, dir_config: Rubcask::Config::DEFAULT_SERVER_CONFIG, runner_config: Rubcask::Server::Runner::Config.new ) @dir = Rubcask::Directory.new( runner_config.directory_path, config: dir_config ) @server = new_server(runner_config.server_type, server_config) @merge_worker = if runner_config.merge_interval && runner_config.merge_interval > 0 Concurrent::TimerTask.new( execution_interval: runner_config.merge_interval ) do merge_dir end end end |
Instance Method Details
#close ⇒ Object
Stops the server
41 42 43 44 |
# File 'lib/rubcask/server/runner.rb', line 41 def close close_server mutex_close end |
#start ⇒ Object
Note:
It blocks the current thread
Starts the runner.
34 35 36 37 38 |
# File 'lib/rubcask/server/runner.rb', line 34 def start install_trap! @merge_worker.execute @server.start end |