lib/noda/job_worker.rb in noda-0.0.12 vs lib/noda/job_worker.rb in noda-0.0.13

- old
+ new

@@ -6,13 +6,27 @@ # Taskを取りだして実行します. # ip=127.0.0.1 # w=Noda::JobWorker.new("#{ip}", "10001") # t = DRb.start_service("druby://#{ip}:10101",w) # w.start -# +# Taskをサーバー経由で送信する +# ip=127.0.0.1 +# server = Noda::JobServer.new ip,"10001" +# str = %Q' +# class Noda::MyTask +# def do_task(table) +# table.put @name, "#{Process.pid} : #{Time.now}" +# return "#{@name} in #{Process.pid} : #{Time.now}" +# end +# def initialize(name) @name end +# end +# ' +# eval(str) +# task = Noda::MyTask.new("test") +# server.add_task_class( task.class.to_s, str) +# 10.times{|i| server.input.push Noda::MyTask.new(i) } # - class JobWorker attr_reader :thread attr_accessor :max_retry_connect , :wait_time_to_retry # * server_addr ジョブサーバーアドレス、またはホスト名 # * server_port ジョブサーバーポート @@ -57,10 +71,10 @@ # クラス定義をEvalする。クラス定義はサーバーから取り出す. # ワーカー側にクラス定義を動的に渡すときに使います. # *name クラス名 def load_class(name) s = @job.task_class(name) - Noda.module_eval(s) + Noda.module_eval(s) if s end # ワーカーのメインスレッドを起動します.start で使います. def init_thread @table = @job.hash_table @thread= Thread.new{