summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Kreen2011-02-04 14:59:34 +0000
committerMarko Kreen2011-02-04 14:59:34 +0000
commit76b4a7884cd05b254d2df6149ea30aa5c824c9fe (patch)
tree8f7b962cb017b6d4607f10b70263ebc28398ee14
parent0ca5a658f8a407753bfd9d524a47166ccac95303 (diff)
pgq.get_queue_info: report last tick in queue
-rw-r--r--sql/pgq/expected/pgq_core.out9
-rw-r--r--sql/pgq/functions/pgq.get_queue_info.sql14
-rw-r--r--sql/pgq/sql/pgq_core.sql3
3 files changed, 17 insertions, 9 deletions
diff --git a/sql/pgq/expected/pgq_core.out b/sql/pgq/expected/pgq_core.out
index 976726d2..48c02bd8 100644
--- a/sql/pgq/expected/pgq_core.out
+++ b/sql/pgq/expected/pgq_core.out
@@ -85,11 +85,12 @@ select queue_name, consumer_name, prev_tick_id, tick_id, lag < '30 seconds' as l
select queue_name, queue_ntables, queue_cur_table, queue_rotation_period,
queue_switch_time <= now() as switch_time_exists,
queue_external_ticker, queue_ticker_max_count, queue_ticker_max_lag,
- queue_ticker_idle_period, ticker_lag < '2 hours' as ticker_lag_exists
+ queue_ticker_idle_period, ticker_lag < '2 hours' as ticker_lag_exists,
+ last_tick_id
from pgq.get_queue_info() order by 1;
- queue_name | queue_ntables | queue_cur_table | queue_rotation_period | switch_time_exists | queue_external_ticker | queue_ticker_max_count | queue_ticker_max_lag | queue_ticker_idle_period | ticker_lag_exists
-------------+---------------+-----------------+-----------------------+--------------------+-----------------------+------------------------+----------------------+--------------------------+-------------------
- myqueue | 3 | 0 | @ 2 hours | t | f | 500 | @ 0 | @ 0 | t
+ queue_name | queue_ntables | queue_cur_table | queue_rotation_period | switch_time_exists | queue_external_ticker | queue_ticker_max_count | queue_ticker_max_lag | queue_ticker_idle_period | ticker_lag_exists | last_tick_id
+------------+---------------+-----------------+-----------------------+--------------------+-----------------------+------------------------+----------------------+--------------------------+-------------------+--------------
+ myqueue | 3 | 0 | @ 2 hours | t | f | 500 | @ 0 | @ 0 | t | 2
(1 row)
select queue_name, consumer_name, lag < '30 seconds' as lag_exists,
diff --git a/sql/pgq/functions/pgq.get_queue_info.sql b/sql/pgq/functions/pgq.get_queue_info.sql
index b4a2f3c7..fd3c6ad5 100644
--- a/sql/pgq/functions/pgq.get_queue_info.sql
+++ b/sql/pgq/functions/pgq.get_queue_info.sql
@@ -1,3 +1,6 @@
+drop function if exists pgq.get_queue_info();
+drop function if exists pgq.get_queue_info(text);
+
create or replace function pgq.get_queue_info(
out queue_name text,
out queue_ntables integer,
@@ -11,7 +14,8 @@ create or replace function pgq.get_queue_info(
out queue_ticker_idle_period interval,
out ticker_lag interval,
out ev_per_sec float8,
- out ev_new bigint)
+ out ev_new bigint,
+ out last_tick_id bigint)
returns setof record as $$
-- ----------------------------------------------------------------------
-- Function: pgq.get_queue_info(0)
@@ -25,12 +29,12 @@ begin
for queue_name, queue_ntables, queue_cur_table, queue_rotation_period,
queue_switch_time, queue_external_ticker, queue_ticker_paused,
queue_ticker_max_count, queue_ticker_max_lag, queue_ticker_idle_period,
- ticker_lag, ev_per_sec, ev_new
+ ticker_lag, ev_per_sec, ev_new, last_tick_id
in select
f.queue_name, f.queue_ntables, f.queue_cur_table, f.queue_rotation_period,
f.queue_switch_time, f.queue_external_ticker, f.queue_ticker_paused,
f.queue_ticker_max_count, f.queue_ticker_max_lag, f.queue_ticker_idle_period,
- f.ticker_lag, f.ev_per_sec, f.ev_new
+ f.ticker_lag, f.ev_per_sec, f.ev_new, f.last_tick_id
from pgq.get_queue_info(null) f
loop
return next;
@@ -53,7 +57,8 @@ create or replace function pgq.get_queue_info(
out queue_ticker_idle_period interval,
out ticker_lag interval,
out ev_per_sec float8,
- out ev_new bigint)
+ out ev_new bigint,
+ out last_tick_id bigint)
returns setof record as $$
-- ----------------------------------------------------------------------
-- Function: pgq.get_queue_info(1)
@@ -111,6 +116,7 @@ begin
ev_per_sec = null;
end if;
ev_new = pgq.seq_getval(_queue_event_seq) - _top_tick_event_seq;
+ last_tick_id = _top_tick_id;
return next;
end loop;
return;
diff --git a/sql/pgq/sql/pgq_core.sql b/sql/pgq/sql/pgq_core.sql
index 50878c53..53375030 100644
--- a/sql/pgq/sql/pgq_core.sql
+++ b/sql/pgq/sql/pgq_core.sql
@@ -21,7 +21,8 @@ select queue_name, consumer_name, prev_tick_id, tick_id, lag < '30 seconds' as l
select queue_name, queue_ntables, queue_cur_table, queue_rotation_period,
queue_switch_time <= now() as switch_time_exists,
queue_external_ticker, queue_ticker_max_count, queue_ticker_max_lag,
- queue_ticker_idle_period, ticker_lag < '2 hours' as ticker_lag_exists
+ queue_ticker_idle_period, ticker_lag < '2 hours' as ticker_lag_exists,
+ last_tick_id
from pgq.get_queue_info() order by 1;
select queue_name, consumer_name, lag < '30 seconds' as lag_exists,
last_seen < '30 seconds' as last_seen_exists,