Class: Jp::Server::Server

Inherits:
Handler
  • Object
show all
Defined in:
lib/rb/jp/server/server.rb

Direct Known Subclasses

InstrumentedServer

Instance Attribute Summary

Attributes inherited from Handler

#retry_attempts, #retry_delay

Attributes included from Pools

#pools

Attributes included from MongoConnection

#database

Instance Method Summary collapse

Methods inherited from Handler

#acquire, #add, #purge, #rescue_connection_failure

Methods included from MongoConnection

#connect_to_mongo

Constructor Details

#initialize(options = {}) ⇒ Server

Returns a new instance of Server.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/rb/jp/server/server.rb', line 11

def initialize options = {}
  super options
  options[:port_number] ||= 9090
    
  # Setup Thrift server (allowing dependency injection)
  if options.member? :injected_thrift_server then
    @server = options[:injected_thrift_server]
  else
    processor = options[:thrift_processor] # For testing, and allow instrumented server to override
    processor ||= JobPool::Processor.new self
    socket = Thrift::ServerSocket.new options[:port_number]
    transportFactory = Thrift::BufferedTransportFactory.new
    
    @server = Thrift::ThreadedServer.new processor, socket, transportFactory
  end
    
  @unlocker = nil
  unless options[:skip_embedded_unlocker]
    if options.member? :injected_unlocker
      @unlocker = options[:injected_unlocker]
    else
      @unlocker = Jp::Server::Unlocker.new options
    end
  end
    
  @start_time = Time.new.to_i
end

Instance Method Details

#aliveSinceObject



58
# File 'lib/rb/jp/server/server.rb', line 58

def aliveSince; @start_time; end

#getCounter(name) ⇒ Object



71
# File 'lib/rb/jp/server/server.rb', line 71

def getCounter(name); 0; end

#getCountersObject

fb303 stubs properly implemented in JpInstrumentedServer:



70
# File 'lib/rb/jp/server/server.rb', line 70

def getCounters; Hash.new; end

#getCpuProfile(seconds) ⇒ Object



67
# File 'lib/rb/jp/server/server.rb', line 67

def getCpuProfile(seconds); String.new; end

#getNameObject

fb303:



54
# File 'lib/rb/jp/server/server.rb', line 54

def getName; 'jp'; end

#getOption(key) ⇒ Object



65
# File 'lib/rb/jp/server/server.rb', line 65

def getOption(key); end

#getOptionsObject



66
# File 'lib/rb/jp/server/server.rb', line 66

def getOptions; Hash.new; end

#getStatusObject



56
# File 'lib/rb/jp/server/server.rb', line 56

def getStatus; Fb_status::ALIVE; end

#getStatusDetailsObject



57
# File 'lib/rb/jp/server/server.rb', line 57

def getStatusDetails; 'nothing to see here; move along'; end

#getVersionObject



55
# File 'lib/rb/jp/server/server.rb', line 55

def getVersion; '0.0.1'; end

#reinitializeObject



68
# File 'lib/rb/jp/server/server.rb', line 68

def reinitialize; end

#serveObject



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/rb/jp/server/server.rb', line 39

def serve
  # Look for expired entries
  @unlocker ||= nil
  unlocker_thread = nil
  if @unlocker
    unlocker_thread = Thread.new do
      @unlocker.run
    end
  end
  @server.serve
  unlocker_thread.join if unlocker_thread
end

#setOption(key, value) ⇒ Object

fb303 stubs:



64
# File 'lib/rb/jp/server/server.rb', line 64

def setOption(key, value); end

#shutdownObject



59
60
61
62
# File 'lib/rb/jp/server/server.rb', line 59

def shutdown
  STDERR.write "Shutdown requested via fb303\n"
  exit
end