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