Module: QC::Queries
Instance Method Summary collapse
- #count(q_name = nil) ⇒ Object
- #delete(id) ⇒ Object
- #delete_all(q_name = nil) ⇒ Object
- #insert(q_name, method, args, chan = nil) ⇒ Object
- #lock_head(q_name, top_bound) ⇒ Object
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 |