diff options
author | Marko Kreen | 2011-02-04 14:59:34 +0000 |
---|---|---|
committer | Marko Kreen | 2011-02-04 14:59:34 +0000 |
commit | 76b4a7884cd05b254d2df6149ea30aa5c824c9fe (patch) | |
tree | 8f7b962cb017b6d4607f10b70263ebc28398ee14 | |
parent | 0ca5a658f8a407753bfd9d524a47166ccac95303 (diff) |
pgq.get_queue_info: report last tick in queue
-rw-r--r-- | sql/pgq/expected/pgq_core.out | 9 | ||||
-rw-r--r-- | sql/pgq/functions/pgq.get_queue_info.sql | 14 | ||||
-rw-r--r-- | sql/pgq/sql/pgq_core.sql | 3 |
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, |