postgresql的扩展:pg_net

pg_net使 PostgreSQL 能够在 SQL 中发出异步 HTTP/HTTPS 请求。它不同于[http]扩展,因为它默认是异步的。这使得它在阻塞函数(如触发器)中很有用。

它消除了服务器不断轮询数据库更改的需要,而是允许数据库主动通知外部资源有关重大事件的信息。

1.介绍

PG_NET扩展使 PostgreSQL 能够在 SQL 中发出异步 HTTP/HTTPS 请求。它消除了服务器不断轮询数据库更改的需要,而是允许数据库主动通知外部资源有关重大事件的信息。它与触发器、cron 作业(例如PG_CRON)和程序无缝集成,解锁了无数可能性。值得注意的是,PG_NET为 Supabase 的 Webhook 功能提供支持,突出了其健壮性和可靠性。

PG_NET扩展的常见用例包括:

  • 调用外部 API
  • 与外部资源同步数据
  • 在发生事件(如插入)时调用无服务器函数

但是,需要注意的是,该扩展有一些限制。目前,它仅支持三种类型的异步请求:

  • 异步 http GET 请求
  • 具有 JSON 有效负载的异步 http POST 请求
  • 异步 http DELETE 请求

不过,最终,PG_NET为开发人员提供了更大的灵活性,使他们能够监控数据库并将其与外部资源连接起来。

1.1.技术说明

该扩展引入了一个新架构,其中包含两个未记录的表,这是 PostgreSQL 中的一种表,它以牺牲持久性为代价来提供性能改进。您可以在此处阅读有关未记录表的更多信息。这两个表是:net

  1. http_request_queue:此表用作等待执行的请求的队列。成功执行请求后,相应的数据将从队列中删除。

    用于创建此表的 SQL 语句为:

    CREATE UNLOGGED TABLE
        net.http_request_queue (
            id bigint NOT NULL DEFAULT nextval('net.http_request_queue_id_seq'::regclass),
            method text NOT NULL,
            url text NOT NULL,
            headers jsonb NOT NULL,
            body bytea NULL,
            timeout_milliseconds integer NOT NULL
        )
    
  2. _http_response:此表包含每个已执行请求的响应。

    用于创建此表的 SQL 语句为:

    CREATE UNLOGGED TABLE
        net._http_response (
            id bigint NULL,
            status_code integer NULL,
            content_type text NULL,
            headers jsonb NULL,
            content text NULL,
            timed_out boolean NULL,
            error_msg text NULL,
            created timestamp with time zo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九又四分之三站台Emm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值