Module: QC::Queries

Extended by:
Queries
Included in:
Queries
Defined in:
lib/queue_classic/queries.rb

Instance Method Summary collapse

Instance Method Details

#count(q_name = nil) ⇒ Object



24
25
26
27
28
29
# File 'lib/queue_classic/queries.rb', line 24

def count(q_name=nil)
  s = "SELECT COUNT(*) FROM #{TABLE_NAME}"
  s << " WHERE q_name = $1" if q_name
  r = Conn.execute(*[s, q_name].compact)
  r["count"].to_i
end

#delete(id) ⇒ Object



31
32
33
# File 'lib/queue_classic/queries.rb', line 31

def delete(id)
  Conn.execute("DELETE FROM #{TABLE_NAME} where id = $1", id)
end

#delete_all(q_name = nil) ⇒ Object



35
36
37
38
39
# File 'lib/queue_classic/queries.rb', line 35

def delete_all(q_name=nil)
  s = "DELETE FROM #{TABLE_NAME}"
  s << " WHERE q_name = $1" if q_name
  Conn.execute(*[s, q_name].compact)
end

#insert(q_name, method, args, chan = nil) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/queue_classic/queries.rb', line 5

def insert(q_name, method, args, chan=nil)
  QC.log_yield(:action => "insert_job") do
    s="INSERT INTO #{TABLE_NAME} (q_name, method, args) VALUES ($1, $2, $3)"
    res = Conn.execute(s, q_name, method, OkJson.encode(args))
    Conn.notify(chan) if chan
  end
end

#lock_head(q_name, top_bound) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/queue_classic/queries.rb', line 13

def lock_head(q_name, top_bound)
  s = "SELECT * FROM lock_head($1, $2)"
  if r = Conn.execute(s, q_name, top_bound)
    {
      :id     => r["id"],
      :method => r["method"],
      :args   => OkJson.decode(r["args"])
    }
  end
end