Class: Asyncapi::Client::Job

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
AASM
Defined in:
app/models/asyncapi/client/job.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.post(url, headers: nil, body: nil, on_queue: nil, on_success: nil, on_error: nil, on_time_out: nil, on_queue_error: nil, callback_params: {}, follow_up: 5.minutes, time_out: nil) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'app/models/asyncapi/client/job.rb', line 52

def self.post(url,
              headers: nil,
              body: nil,
              on_queue: nil,
              on_success: nil,
              on_error: nil,
              on_time_out: nil,
              on_queue_error: nil,
              callback_params: {},
              follow_up: 5.minutes,
              time_out: nil)

  args = {
    follow_up_at: follow_up.from_now,
    on_queue: on_queue,
    on_success: on_success,
    on_error: on_error,
    on_queue_error: on_queue_error,
    on_time_out: on_time_out,
    callback_params: callback_params,
    headers: headers,
    body: body,
  }
  args[:time_out_at] = time_out.from_now if time_out
  job = create(args)
  ActiveRecord::Base.after_transaction do
    JobPostWorker.perform_async(job.id, url)
  end
end

Instance Method Details

#urlObject



82
83
84
# File 'app/models/asyncapi/client/job.rb', line 82

def url
  Asyncapi::Client::Engine.routes.url_helpers.v1_job_url(self)
end