lib/gush/job.rb in gush-0.4.1 vs lib/gush/job.rb in gush-1.0.0
- old
+ new
@@ -1,13 +1,12 @@
module Gush
class Job
attr_accessor :workflow_id, :incoming, :outgoing, :params,
- :finished_at, :failed_at, :started_at, :enqueued_at, :payloads_hash, :klass
- attr_reader :name, :output_payload, :params, :payloads
+ :finished_at, :failed_at, :started_at, :enqueued_at, :payloads, :klass
+ attr_reader :name, :output_payload, :params
- def initialize(workflow, opts = {})
- @workflow = workflow
+ def initialize(opts = {})
options = opts.dup
assign_variables(options)
end
def as_json
@@ -19,35 +18,30 @@
finished_at: finished_at,
enqueued_at: enqueued_at,
started_at: started_at,
failed_at: failed_at,
params: params,
+ workflow_id: workflow_id,
output_payload: output_payload
}
end
def to_json(options = {})
Gush::JSON.encode(as_json)
end
- def self.from_hash(flow, hash)
- hash[:klass].constantize.new(flow, hash)
+ def self.from_hash(hash)
+ hash[:klass].constantize.new(hash)
end
def output(data)
@output_payload = data
end
- def payloads
- payload_h = {}
- payloads_hash.each {|k,val| payload_h[k.to_s] = val.map {|h| h[:payload] }}
- payload_h
+ def perform
end
- def work
- end
-
def start!
@started_at = current_timestamp
end
def enqueue!
@@ -93,21 +87,22 @@
!running? && !enqueued? && !finished? && !failed? && parents_succeeded?
end
def parents_succeeded?
incoming.all? do |name|
- @workflow.find_job(name).succeeded?
+ client.find_job(workflow_id, name).succeeded?
end
end
def has_no_dependencies?
incoming.empty?
end
private
- def logger
- Sidekiq.logger
+
+ def client
+ @client ||= Client.new
end
def current_timestamp
Time.now.to_i
end
@@ -121,8 +116,9 @@
@started_at = opts[:started_at]
@enqueued_at = opts[:enqueued_at]
@params = opts[:params] || {}
@klass = opts[:klass]
@output_payload = opts[:output_payload]
+ @workflow_id = opts[:workflow_id]
end
end
end