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