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,
+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,
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)
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;
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)
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;
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,