我有一个功能,我有一个表,每个插件我必须用JSON通知一个通道。我在触发器函数中使用pg_notify
来执行此操作。现在我必须管理该消息队列,以便如果它的大小达到80%,它必须删除旧消息,直到它达到50%。我在网上搜索了它,但我没有收到任何答案。任何人都可以提供帮助。
我使用下面提到的触发器来通知。
CREATE OR REPLACE FUNCTION action_notify() RETURNS TRIGGER AS $BODY$
DECLARE
action_json TEXT;
BEGIN
RAISE DEBUG 'begin: action_notify';
action_json := '{"action": "'||NEW.action||'"
"action_params": "'||NEW.action_params||'"}';
PERFORM pg_notify(TG_TABLE_NAME, action_json);
RAISE DEBUG 'end: action_notify';
RETURN NULL;
END;
$BODY$ LANGUAGE plpgsql;
如果有人可以指导我如何管理此消息队列,那将会很有帮助。我没有使用像rabbitmq这样的任何其他消息队列......只是从postgres管理它......这是实现它的最好方法。
使用PostgreSQL 9.3。