Class: SolidQueueTui::Actions::DiscardScheduledJob

Inherits:
Object
  • Object
show all
Defined in:
lib/solid_queue_tui/actions/discard_scheduled_job.rb

Class Method Summary collapse

Class Method Details

.call(job_id) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/solid_queue_tui/actions/discard_scheduled_job.rb', line 6

def self.call(job_id)
  conn = ActiveRecord::Base.connection

  row = conn.select_one(
    "SELECT se.id, se.job_id " \
      "FROM solid_queue_scheduled_executions se " \
      "WHERE se.job_id = #{conn.quote(job_id.to_i)}"
  )
  return false unless row

  conn.transaction do
    conn.execute(
      "DELETE FROM solid_queue_scheduled_executions WHERE id = #{conn.quote(row['id'])}"
    )

    conn.execute(
      "UPDATE solid_queue_jobs SET finished_at = #{conn.quote(Time.now.utc.iso8601)} " \
        "WHERE id = #{conn.quote(row['job_id'])}"
    )
  end

  true
rescue => e
  false
end