Changeset 296

Show
Ignore:
Timestamp:
12/23/07 04:44:33 (8 months ago)
Author:
gethema..@gmail.com
Message:

check in fixes to core classes and thread pool size

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/framework/core.rb

    r294 r296  
    1616 
    1717    module ClassMethods 
     18      include Packet::ClassHelpers 
    1819      def after_connection p_method 
    1920        connection_callbacks[:after_connection] ||= [] 
  • trunk/framework/packet.rb

    r217 r296  
    22require "yaml" 
    33require "forwardable" 
    4 require "attribute_accessors" 
    54require "bin_parser" 
    65 
    76require "ostruct" 
    87require "packet_guid" 
    9 require "ruby_hacks" 
     8require "class_helpers" 
    109require "double_keyed_hash" 
    1110require "event" 
  • trunk/framework/pimp.rb

    r217 r296  
    22  class Pimp 
    33    include NbioHelper 
     4    extend ClassHelpers 
    45    extend Forwardable 
    56    iattr_accessor :pimp_name 
  • trunk/lib/backgroundrb.rb

    r294 r296  
    4747    raise BackgrounDRb::BdrbConnError.new("Not able to connect") unless @connection_status 
    4848    dump_object(p_data,@connection) 
     49    return p_data[:job_key] 
    4950    # @connection.close 
     51  end 
     52   
     53  def worker_info(p_data) 
     54    p_data[:type] = :worker_info 
     55    establish_connection 
     56    raise BackgrounDRb::BdrbConnError.new("Not able to connect") unless @connection_status 
     57    dump_object(p_data,@connection) 
     58    return read_from_bdrb() 
    5059  end 
    5160 
     
    7584    raise BackgrounDRb::BdrbConnError.new("Not able to connect") unless @connection_status 
    7685    dump_object(p_data,@connection) 
    77     begin 
    78       ret_val = select([@connection],nil,nil,3) 
    79       unless ret_val 
    80         # @connection.close 
    81         return nil 
    82       end 
    83       raw_response = read_object() 
    84       master_response = Marshal.load(raw_response) 
    85       # @connection.close 
    86       return master_response 
    87     rescue 
    88       puts $! 
    89       puts $!.backtrace 
    90       # @connection.close 
    91       return nil 
    92     end 
     86    return read_from_bdrb 
    9387  end 
    9488 
     
    9993    raise BackgrounDRb::BdrbConnError.new("Not able to connect") unless @connection_status 
    10094    dump_object(p_data,@connection) 
     95    return read_from_bdrb 
     96  end 
     97   
     98  def read_from_bdrb(timeout = 3) 
    10199    begin 
    102       ret_val = select([@connection],nil,nil,3) 
    103       unless ret_val 
    104         # @connection.close 
    105         return nil 
    106       end 
     100      ret_val = select([@connection],nil,nil,timeout) 
     101      return nil unless ret_val 
    107102      raw_response = read_object() 
    108103      master_response = Marshal.load(raw_response) 
    109       # @connection.close 
    110104      return master_response 
    111105    rescue 
    112       puts $! 
    113       puts $!.backtrace 
    114       # @connection.close 
    115106      return nil 
    116107    end 
     
    123114    raise BackgrounDRb::BdrbConnError.new("Not able to connect") unless @connection_status 
    124115    dump_object(p_data,@connection) 
    125     begin 
    126       ret_val = select([@connection],nil,nil,nil) 
    127       unless ret_val 
    128         # @connection.close 
    129         return nil 
    130       end 
    131       raw_response = read_object() 
    132       master_response = Marshal.load(raw_response) 
    133       # @connection.close 
    134       return master_response[:data] 
    135     rescue 
    136       # @connection.close 
    137       return nil 
    138     end 
     116    return read_from_bdrb(nil) 
    139117  end 
    140118end 
  • trunk/server/master_worker.rb

    r295 r296  
    3939        when :delete_worker: delete_drb_worker(t_data) 
    4040        when :all_worker_status: query_all_worker_status(t_data) 
     41        when :worker_info: pass_worker_info(t_data) 
    4142        end 
    4243      end 
     44    end 
     45     
     46    #  
     47    def pass_worker_info(t_data) 
     48      worker_name_key = gen_worker_key(t_data[:worker],t_data[:job_key]) 
     49      worker_instance = reactor.live_workers[worker_name_key] 
     50      info_response = { :worker => t_data[:worker],:job_key => t_data[:job_key]} 
     51      worker_instance ? (info_response[:status] = :running) : (info_response[:status] = :stopped) 
     52      send_object(info_response) 
    4353    end 
    4454 
  • trunk/server/meta_worker.rb

    r291 r296  
    153153    attr_accessor :config_file, :my_schedule, :run_time, :trigger_type, :trigger 
    154154    attr_accessor :logger, :thread_pool 
     155    iattr_accessor :pool_size 
     156    @pool_size = nil 
     157     
     158    def self.pool_size(size = nil) 
     159      if size 
     160        @pool_size = size 
     161      else 
     162        @pool_size 
     163      end 
     164    end 
    155165 
    156166    # does initialization of worker stuff and invokes create method in 
    157167    # user defined worker class 
    158168    def worker_init 
    159       @thread_pool = ThreadPool.new(20) 
     169      p pool_size 
     170      @thread_pool = ThreadPool.new(pool_size || 20) 
    160171 
    161172      @config_file = YAML.load(ERB.new(IO.read("#{RAILS_HOME}/config/backgroundrb.yml")).result)