Sha256: 012c3f25fc6d8bb047c758132eda18205516c7c9a4037eb356cf9d19a75a40c3

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 KB

Contents

require 'celluloid'

class Eye::ChildProcess
  include Celluloid

  # needs: kill_process
  include Eye::Process::Commands

  # easy config + defaults: prepare_config, c, []
  include Eye::Process::Config

  # conditional watchers: start_checkers
  include Eye::Process::Watchers

  # system methods: send_signal
  include Eye::Process::System

  # logger methods: info, ...
  include Eye::Logger::Helpers

  # self_status_data
  include Eye::Process::Data

  # manage notify methods
  include Eye::Process::Notify

  # scheduler
  include Eye::Process::Scheduler

  attr_reader :pid, :name, :config, :watchers

  def initialize(pid, config = {}, logger_prefix = nil)
    raise 'Empty pid' unless pid

    @pid = pid
    @config = prepare_config(config)
    @name = '=child='

    @logger = Eye::Logger.new("#{logger_prefix} child:#{pid}")
    
    @watchers = {}

    debug "start monitoring CHILD config: #{@config.inspect}"

    start_checkers
  end

  def state
    :up
  end

  def stop
    kill_process
  end

  def restart
    stop
  end

  def monitor
  end

  def unmonitor
  end

  def delete
    remove_watchers
    terminate
  end

  def status_data(debug = false)
    self_status_data(debug)
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
eye-0.1.11 lib/eye/child_process.rb