Changeset 213

Show
Ignore:
Timestamp:
12/03/07 19:35:17 (1 year ago)
Author:
gethema..@gmail.com
Message:

check in new code

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/version10/framework/double_keyed_hash.rb

    r187 r213  
    1414  end 
    1515 
     16  def delete(key) 
     17    @keys1.delete(key) 
     18    @internal_hash.delete(key) 
     19  end 
     20 
    1621  def each 
    1722    @internal_hash.each { |key,value| yield(key,value)} 
  • branches/version10/framework/nbio.rb

    r210 r213  
    3434      rescue Errno::EAGAIN 
    3535        return 
     36      rescue Errno::EPIPE 
     37        raise DisconnectError.new(p_sock) 
    3638      end 
    3739    end 
     
    4446      rescue Errno::EAGAIN 
    4547        return 
     48      rescue Errno::EPIPE 
     49        raise DisconnectError.new(p_sock) 
    4650      end 
    4751    end 
     
    5458      final_data = length_str + object_dump 
    5559 
    56 #       total_length = final_data.length 
    57 #       loop do 
    58 #         begin 
    59 #           written_length = p_sock.write_nonblock(final_data) 
    60 #         rescue Errno::EAGAIN 
    61 #           break 
    62 #         end 
    63 #         break if written_length >= total_length 
    64 #         final_data = final_data[written_length..-1] 
    65 #         break if final_data.empty? 
    66 #         total_length = final_data.length 
    67 #       end 
    68  
    6960      begin 
    7061        p_sock.write_nonblock(final_data) 
    7162      rescue Errno::EAGAIN 
    7263        return 
     64      rescue Errno::EPIPE 
     65        raise DisconnectError.new(p_sock) 
    7366      end 
    7467    end 
  • branches/version10/framework/packet_master.rb

    r212 r213  
    8686 
    8787    def delete_worker(worker_options = {}) 
    88       p "Calling delete worker #{worker_options}" 
    8988      worker_name = worker_options[:worker] 
    9089      worker_name_key = gen_worker_key(worker_name,worker_options[:job_key]) 
  • branches/version10/generators/worker/templates/worker.rb

    r194 r213  
    55class <%= class_name %>Worker < BackgrounDRb::MetaWorker 
    66  set_worker_name :<%= file_name %>_worker 
    7   def create 
     7  def create(args = nil) 
    88    # this method is called, when worker is loaded for the first time 
    99  end 
     
    1111  def process_request(p_data) 
    1212    user_input = p_data[:data] 
    13     result = self.send(user_input[:method],user_input[:data]) 
     13    result = self.send(user_input[:worker_method],user_input[:data]) 
    1414    send_response(p_data,result) 
    1515  end 
  • branches/version10/server/master_worker.rb

    r212 r213  
    4040    worker_name = t_data[:worker] 
    4141    job_key = t_data[:job_key] 
    42     ask_worker(worker_name,:job_key => t_data[:job_key],:type => :request, :data => { :method => :exit}) 
     42    worker_name_key = gen_worker_key(worker_name,job_key) 
     43    begin 
     44      ask_worker(worker_name,:job_key => t_data[:job_key],:type => :request, :data => { :worker_method => :exit}) 
     45    rescue Packet::DisconnectError => sock_error 
     46      workers.delete(worker_name_key) 
     47    rescue 
     48      p $! 
     49      p $!.backtrace 
     50      return 
     51    end 
    4352  end 
    4453 
     
    4958  def process_work(t_data) 
    5059    worker_name = t_data[:worker] 
     60    worker_name_key = gen_worker_key(worker_name,t_data[:job_key]) 
    5161    t_data.delete(:worker) 
    5262    t_data.delete(:type) 
    53     ask_worker(worker_name,:data => t_data, :type => :request) 
     63    begin 
     64      ask_worker(worker_name,:data => t_data, :type => :request) 
     65    rescue Packet::DisconnectError => sock_error 
     66      workers.delete(worker_name_key) 
     67    rescue 
     68      p $! 
     69      p $!.backtrace 
     70      return 
     71    end 
     72 
    5473  end 
    5574 
     
    6281  def process_request(t_data) 
    6382    worker_name = t_data[:worker] 
     83    worker_name_key = gen_worker_key(worker_name,t_data[:job_key]) 
    6484    t_data.delete(:worker) 
    6585    t_data.delete(:type) 
    66     ask_worker(worker_name,:data => t_data, :type => :request) 
     86    begin 
     87      ask_worker(worker_name,:data => t_data, :type => :request) 
     88    rescue Packet::DisconnectError => sock_error 
     89      workers.delete(worker_name_key) 
     90    rescue 
     91      p $! 
     92      p $!.backtrace 
     93      return 
     94    end 
    6795  end 
    6896 
  • branches/version10/server/meta_worker.rb

    r212 r213  
    4141 
    4242    def receive_data p_data 
     43      if p_data[:data][:worker_method] == :exit 
     44        exit 
     45        return 
     46      end 
    4347      case p_data[:type] 
    4448      when :request: process_request(p_data)