从postgres消息队列中删除通知

时间:2015-08-26 18:51:03

标签: postgresql

我有一个功能,我有一个表,每个插件我必须用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。

0 个答案:

没有答案