Changeset 213
- Timestamp:
- 12/03/07 19:35:17 (1 year ago)
- Files:
-
- branches/version10/examples/foo_controller.rb (added)
- branches/version10/framework/double_keyed_hash.rb (modified) (1 diff)
- branches/version10/framework/nbio.rb (modified) (3 diffs)
- branches/version10/framework/packet_master.rb (modified) (1 diff)
- branches/version10/generators/worker/templates/worker.rb (modified) (2 diffs)
- branches/version10/server/master_worker.rb (modified) (3 diffs)
- branches/version10/server/meta_worker.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/version10/framework/double_keyed_hash.rb
r187 r213 14 14 end 15 15 16 def delete(key) 17 @keys1.delete(key) 18 @internal_hash.delete(key) 19 end 20 16 21 def each 17 22 @internal_hash.each { |key,value| yield(key,value)} branches/version10/framework/nbio.rb
r210 r213 34 34 rescue Errno::EAGAIN 35 35 return 36 rescue Errno::EPIPE 37 raise DisconnectError.new(p_sock) 36 38 end 37 39 end … … 44 46 rescue Errno::EAGAIN 45 47 return 48 rescue Errno::EPIPE 49 raise DisconnectError.new(p_sock) 46 50 end 47 51 end … … 54 58 final_data = length_str + object_dump 55 59 56 # total_length = final_data.length57 # loop do58 # begin59 # written_length = p_sock.write_nonblock(final_data)60 # rescue Errno::EAGAIN61 # break62 # end63 # break if written_length >= total_length64 # final_data = final_data[written_length..-1]65 # break if final_data.empty?66 # total_length = final_data.length67 # end68 69 60 begin 70 61 p_sock.write_nonblock(final_data) 71 62 rescue Errno::EAGAIN 72 63 return 64 rescue Errno::EPIPE 65 raise DisconnectError.new(p_sock) 73 66 end 74 67 end branches/version10/framework/packet_master.rb
r212 r213 86 86 87 87 def delete_worker(worker_options = {}) 88 p "Calling delete worker #{worker_options}"89 88 worker_name = worker_options[:worker] 90 89 worker_name_key = gen_worker_key(worker_name,worker_options[:job_key]) branches/version10/generators/worker/templates/worker.rb
r194 r213 5 5 class <%= class_name %>Worker < BackgrounDRb::MetaWorker 6 6 set_worker_name :<%= file_name %>_worker 7 def create 7 def create(args = nil) 8 8 # this method is called, when worker is loaded for the first time 9 9 end … … 11 11 def process_request(p_data) 12 12 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]) 14 14 send_response(p_data,result) 15 15 end branches/version10/server/master_worker.rb
r212 r213 40 40 worker_name = t_data[:worker] 41 41 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 43 52 end 44 53 … … 49 58 def process_work(t_data) 50 59 worker_name = t_data[:worker] 60 worker_name_key = gen_worker_key(worker_name,t_data[:job_key]) 51 61 t_data.delete(:worker) 52 62 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 54 73 end 55 74 … … 62 81 def process_request(t_data) 63 82 worker_name = t_data[:worker] 83 worker_name_key = gen_worker_key(worker_name,t_data[:job_key]) 64 84 t_data.delete(:worker) 65 85 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 67 95 end 68 96 branches/version10/server/meta_worker.rb
r212 r213 41 41 42 42 def receive_data p_data 43 if p_data[:data][:worker_method] == :exit 44 exit 45 return 46 end 43 47 case p_data[:type] 44 48 when :request: process_request(p_data)
