Skip to content

Commit

Permalink
Enable proxy/adapter plugins to be configured in the catalog.
Browse files Browse the repository at this point in the history
  • Loading branch information
daijiro committed Sep 8, 2013
1 parent 339f634 commit 28a2032
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 13 deletions.
4 changes: 4 additions & 0 deletions lib/droonga/catalog.rb
Expand Up @@ -50,6 +50,10 @@ def initialize
end
end

def option(name)
@catalog["options"][name]
end

def get_engines(name)
device = @catalog["farms"][name]["device"]
pattern = Regexp.new("^#{name}\.")
Expand Down
6 changes: 0 additions & 6 deletions lib/droonga/engine.rb
Expand Up @@ -22,13 +22,11 @@
require "droonga/server"
require "droonga/worker"
require "droonga/executor"
require "droonga/adapter"

module Droonga
class Engine
DEFAULT_OPTIONS = {
:queue_name => "DroongaQueue",
:handlers => ["proxy"],
:n_workers => 1,
:with_server => false
}
Expand All @@ -53,10 +51,6 @@ def start
start_emitter
else
@executor = Executor.new(@options)
if @options[:proxy]
@executor.add_handler("proxy_message")
@executor.add_handler("adapter")
end
end
end

Expand Down
5 changes: 3 additions & 2 deletions lib/droonga/executor.rb
Expand Up @@ -22,7 +22,6 @@
require "droonga/job_queue"
require "droonga/handler_plugin"
require "droonga/plugin"
require "droonga/catalog"
require "droonga/proxy"

module Droonga
Expand All @@ -32,11 +31,12 @@ class Executor
def initialize(options={})
@handlers = []
@outputs = {}
@options = options
@name = options[:name]
@database_name = options[:database] || "droonga/db"
@queue_name = options[:queue_name] || "DroongaQueue"
Droonga::JobQueue.ensure_schema(@database_name, @queue_name)
@handler_names = options[:handlers] || ["proxy"]
@handler_names = options[:handlers]
@pool_size = options[:n_workers]
# load_handlers
Droonga::Plugin.load_all
Expand Down Expand Up @@ -217,6 +217,7 @@ def prepare
@handler_names.each do |handler_name|
add_handler(handler_name)
end
add_handler("proxy_message") if @options[:proxy]
end

def find_handler(command)
Expand Down
10 changes: 10 additions & 0 deletions lib/droonga/proxy.rb
Expand Up @@ -17,6 +17,8 @@

require 'tsort'
require "droonga/handler"
require "droonga/adapter"
require "droonga/catalog"

module Droonga
class Proxy
Expand All @@ -34,6 +36,10 @@ def initialize(worker, name)
@collectors = {}
@current_id = 0
@local = Regexp.new("^#{@name}")
plugins = ["proxy", "adapter"] + (Droonga::catalog.option("plugins")||[])
plugins.each do |plugin|
@worker.add_handler(plugin)
end
end

def shutdown
Expand Down Expand Up @@ -257,6 +263,10 @@ def initialize(id, proxy, components, tasks, inputs)

def handle(name, value)
tasks = @inputs[name]
unless tasks
#TODO: result arrived before its query
return
end
tasks.each do |task|
task["n_of_inputs"] += 1 if name
component = task["component"]
Expand Down
4 changes: 0 additions & 4 deletions lib/droonga/server.rb
Expand Up @@ -66,10 +66,6 @@ def initialize
super
@message_input = config[:message_input]
@executor = Executor.new(config)
if config[:proxy]
@executor.add_handler("proxy_message")
@executor.add_handler("adapter")
end
end

def before_run
Expand Down
2 changes: 1 addition & 1 deletion lib/droonga/worker.rb
Expand Up @@ -22,7 +22,7 @@ module Worker
attr_reader :context, :envelope, :name

def initialize
@executor = Executor.new(config)
@executor = Executor.new(config.merge(:proxy => false))
end

def run
Expand Down

0 comments on commit 28a2032

Please sign in to comment.