myqueue | consumer | 1 | 2 | @ 0.00 secs
(1 row)
-select queue_name from pgq.get_queue_info() order by 1;
- queue_name
-------------
- myqueue
-(1 row)
-
-select queue_name, consumer_name from pgq.get_consumer_info() order by 1, 2;
- queue_name | consumer_name
-------------+---------------
- myqueue | consumer
+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
+ 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 | @ 3 secs | @ 1 min | t
+(1 row)
+
+select queue_name, consumer_name, lag < '30 seconds' as lag_exists,
+ last_seen < '30 seconds' as last_seen_exists,
+ last_tick, current_batch, next_tick
+ from pgq.get_consumer_info() order by 1, 2;
+ queue_name | consumer_name | lag_exists | last_seen_exists | last_tick | current_batch | next_tick
+------------+---------------+------------+------------------+-----------+---------------+-----------
+ myqueue | consumer | t | t | 1 | 1 | 2
(1 row)
select pgq.finish_batch(1);
-- ----------------------------------------------------------------------
-- Function: pgq.get_consumer_info(0)
--
--- Desc
---
--- Parameters:
--- arg - desc
+-- Returns info about all consumers on all queues.
--
-- Returns:
--- desc
+-- See pgq.get_consumer_info(2)
-- ----------------------------------------------------------------------
declare
ret pgq.ret_consumer_info%rowtype;
-- ----------------------------------------------------------------------
-- Function: pgq.get_consumer_info(1)
--
--- Desc
+-- Returns info about consumers on one particular queue.
--
-- Parameters:
--- arg - desc
+-- x_queue_name - Queue name
--
-- Returns:
--- desc
+-- See pgq.get_consumer_info(2)
-- ----------------------------------------------------------------------
declare
ret pgq.ret_consumer_info%rowtype;
-- x_consumer_name - name of a consumer
--
-- Returns:
--- info
+-- queue_name - Queue name
+-- consumer_name - Consumer name
+-- lag - How old are events the consumer is processing
+-- last_seen - When the consumer seen by pgq
+-- last_tick - Tick ID of last processed tick
+-- current_batch - Current batch ID, if one is active or NULL
+-- next_tick - If batch is active, then its final tick.
-- ----------------------------------------------------------------------
declare
ret pgq.ret_consumer_info%rowtype;
for ret in
select queue_name, co_name,
current_timestamp - tick_time as lag,
- current_timestamp - sub_active as last_seen
+ current_timestamp - sub_active as last_seen,
+ sub_last_tick as last_tick,
+ sub_batch as current_batch,
+ sub_next_tick as next_tick
from pgq.subscription, pgq.tick, pgq.queue, pgq.consumer
where tick_id = sub_last_tick
and queue_id = sub_queue
select pgq.next_batch('myqueue', 'consumer');
select queue_name, consumer_name, prev_tick_id, tick_id, lag from pgq.get_batch_info(1);
-select queue_name from pgq.get_queue_info() order by 1;
-select queue_name, consumer_name from pgq.get_consumer_info() order by 1, 2;
+
+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
+ 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,
+ last_tick, current_batch, next_tick
+ from pgq.get_consumer_info() order by 1, 2;
select pgq.finish_batch(1);
select pgq.finish_batch(1);
create type pgq.ret_queue_info as (
- queue_name text,
- queue_ntables integer,
- queue_cur_table integer,
- queue_rotation_period interval,
- queue_switch_time timestamptz,
- queue_external_ticker boolean,
- queue_ticker_max_count integer,
- queue_ticker_max_lag interval,
- queue_ticker_idle_period interval,
- ticker_lag interval
+ queue_name text,
+ queue_ntables integer,
+ queue_cur_table integer,
+ queue_rotation_period interval,
+ queue_switch_time timestamptz,
+ queue_external_ticker boolean,
+ queue_ticker_max_count integer,
+ queue_ticker_max_lag interval,
+ queue_ticker_idle_period interval,
+ ticker_lag interval
);
create type pgq.ret_consumer_info as (
- queue_name text,
- consumer_name text,
- lag interval,
- last_seen interval
+ queue_name text,
+ consumer_name text,
+ lag interval,
+ last_seen interval,
+ last_tick bigint,
+ current_batch bigint,
+ next_tick bigint
);
create type pgq.ret_batch_info as (
- queue_name text,
- consumer_name text,
- batch_start timestamptz,
- batch_end timestamptz,
- prev_tick_id bigint,
- tick_id bigint,
- lag interval
+ queue_name text,
+ consumer_name text,
+ batch_start timestamptz,
+ batch_end timestamptz,
+ prev_tick_id bigint,
+ tick_id bigint,
+ lag interval
);
create type pgq.ret_batch_event as (
- ev_id bigint,
- ev_time timestamptz,
-
- ev_txid bigint,
- ev_retry int4,
-
- ev_type text,
- ev_data text,
- ev_extra1 text,
- ev_extra2 text,
- ev_extra3 text,
- ev_extra4 text
+ ev_id bigint,
+ ev_time timestamptz,
+
+ ev_txid bigint,
+ ev_retry int4,
+
+ ev_type text,
+ ev_data text,
+ ev_extra1 text,
+ ev_extra2 text,
+ ev_extra3 text,
+ ev_extra4 text
);