lib/asynchronic/job.rb in asynchronic-0.1.0 vs lib/asynchronic/job.rb in asynchronic-0.2.0

- old
+ new

@@ -1,46 +1,34 @@ module Asynchronic class Job - attr_reader :id - attr_reader :name - attr_reader :queue - attr_reader :parent - attr_reader :dependencies - attr_reader :local - - def initialize(options={}) - @id = SecureRandom.uuid - @name = options.key?(:alias) ? options[:alias].to_s : self.class.to_s - @queue = options[:queue] || self.class.queue - @parent = options[:parent] - @dependencies = Array(options[:dependencies] || options[:dependency]).map(&:to_s) - @local = options[:local] || {} - - raise 'Cant have dependencies without parent job' if dependencies.any? && parent.nil? + def initialize(process) + @process = process end - def lookup - DataStore::Lookup.new self + def params + @process.params end - def self.queue(queue=nil) - queue ? @queue = queue : @queue + def result(reference) + @process[reference].result end - def self.implementation - @implementation + def self.queue(name=nil) + name ? @queue = name : @queue end - def self.enqueue(data={}) - process = Asynchronic.environment.build_process self - process.enqueue data + def self.enqueue(params={}) + process = Asynchronic.environment.create_process self, params + process.enqueue + process.id end private - def self.define(&block) - @implementation = block + def async(type, params={}) + @process.nest type, params + nil end end end \ No newline at end of file