Sha256: 1137dc52213d885149bdaa6240ced2bad4230161607d0ebfc39d9db153933a60

Contents?: true

Size: 1.78 KB

Versions: 30

Compression:

Stored size: 1.78 KB

Contents

require 'serverengine'
require 'flydata-core/logger'
require 'flydata/helper/worker'

# Require all helper files -
lib_dir = File.absolute_path(File.join(__FILE__, '../../..'))
FileUtils.cd(lib_dir) do
  Dir["flydata/helper/**/*.rb"].each { |file| require file }
end

module Flydata
  module Helper
    module Server
      include FlydataCore::Logger

      OVERWRITE_PARAMETERS = {
        :worker_type => 'thread',
        :supervisor => true,
      }

      def self.run(opts={})
        # See ServerEngine documents for details:
        # https://github.com/frsyuki/serverengine
        ServerEngine.create(Server, Worker) do
          ConfigParser.parse_file(opts[:config_path]).
            merge(opts).merge(OVERWRITE_PARAMETERS)
        end.run
      end

      def initialize
        super
      end

      attr_reader :action_ownership_channel

      # ServerEngine hook point
      def reload_config
        super
        setup_log_format
        log_info "reload_config"
        if @scheduler
          @scheduler.reload(config[:helper])
        end
      end

      # ServerEngine hook point
      def before_run
        log_debug "before_run"
        helper_config = config[:helper]
        @action_ownership_channel = ActionOwnershipChannel.new
        @scheduler = Scheduler.new(helper_config, self)
        @scheduler.start
      end

      # ServerEngine hook point
      def after_run
        log_debug "after_run"
        @scheduler.shutdown if @scheduler
      end

      def custom_log_items
        super.merge(prefix: '[server]')
      end

      def setup_log_format
        logger.datetime_format = "%Y-%m-%d %H:%M:%S %z "
        logger.formatter = proc do |severity, datetime, progname, msg|
          "#{datetime} helper.#{severity.to_s.downcase}: #{msg}\n"
        end
      end
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
flydata-0.7.19 lib/flydata/helper/server.rb
flydata-0.7.18 lib/flydata/helper/server.rb
flydata-0.7.17 lib/flydata/helper/server.rb
flydata-0.7.16 lib/flydata/helper/server.rb
flydata-0.7.15 lib/flydata/helper/server.rb
flydata-0.7.14 lib/flydata/helper/server.rb
flydata-0.7.13 lib/flydata/helper/server.rb
flydata-0.7.12 lib/flydata/helper/server.rb
flydata-0.7.11 lib/flydata/helper/server.rb
flydata-0.7.10 lib/flydata/helper/server.rb
flydata-0.7.9 lib/flydata/helper/server.rb
flydata-0.7.8 lib/flydata/helper/server.rb
flydata-0.7.7 lib/flydata/helper/server.rb
flydata-0.7.6 lib/flydata/helper/server.rb
flydata-0.7.5 lib/flydata/helper/server.rb
flydata-0.7.4 lib/flydata/helper/server.rb
flydata-0.7.2.1 lib/flydata/helper/server.rb
flydata-0.7.2 lib/flydata/helper/server.rb
flydata-0.7.1 lib/flydata/helper/server.rb
flydata-0.7.0 lib/flydata/helper/server.rb