lib/drbqs/queue.rb in drbqs-0.0.5 vs lib/drbqs/queue.rb in drbqs-0.0.6
- old
+ new
@@ -1,28 +1,7 @@
module DRbQS
- class Task
- attr_reader :hook
- def initialize(obj, method_sym, args = [], &hook)
- begin
- @marshal_obj = Marshal.dump(obj)
- rescue
- raise "Can not dump an instance of #{obj.class}."
- end
- unless Array === args
- raise "Arguments of task must be an array."
- end
- @method_sym = method_sym.intern
- @args = args
- @hook = hook
- end
-
- def drb_args(task_id)
- [task_id, @marshal_obj, @method_sym, @args]
- end
- end
-
class QueueServer
def initialize(queue, result, logger = nil)
@queue = queue
@result = result
@@ -36,14 +15,16 @@
@queue.write(@cache[task_id].drb_args(task_id))
end
private :queue_task
# &hook take two arguments: a QueueServer object and a result of task.
+ # Return task ID (for debug).
def add(task)
@task_id += 1
@logger.info("New task: #{@task_id}") if @logger
@cache[@task_id] = task
queue_task(@task_id)
+ @task_id
end
def get_accept_signal
count = 0
begin