zoukankan      html  css  js  c++  java
  • PostgreSQL的notify 与listen (六)

    磨砺技术珠矶,践行数据之道,追求卓越价值 

    回到上一级页面: PostgreSQL基础知识与基本操作索引页     回到顶级页面:PostgreSQL索引页

    开两个终端执行psql,进行notify 与 listen动作的实验,当时我有一个疑问:

    从listen 端看到的PID ,到底是谁的ID?

    验证如下:

    启动 postgres, 执行 ps -ef|grep postgres

    看到除了系统级别的postgres外,并没有其他的。

    postgres -D /usr/local/data  (进程号为19651/父进程号为1)
    postgres:writer process
    postgres:wal writer process
    postgres:autovacuum launcher process
    postgres:stats collector process

    开session A(用作listen 端), psql:
    
    postgres#listen gaojian;
    postgres#

    再来看 ps -ef|grep postgre:

    发现多了一个  进程号19924/父进程号19651 的 名为postgres的进程。

    这表明:为给session A 的psql 服务,服务器端启动了一个进程 号为19924的back end prosgres。

    开session B(用作notify 端),psql:
    postgres#notify gaojian;
    postgres#

    再来看 ps -ef|grep postgre:

    发现又多了一个  进程号19938/父进程号19651 的 名为postgres的进程。

    这表明:为给session B的psql 服务,服务器端启动了一个进程 号为19938的back end prosgres。

    再回到session A, 随便执行一条命令:

    postgres#select current_date;
    ...
    收到来自伺服器 "gaojian" 进程PID 19938 非同步通知
    postgres#

    这表明 信息的发送者实际上是 和notify 端对应的 后台postgres进程。

    回到上一级页面: PostgreSQL基础知识与基本操作索引页     回到顶级页面:PostgreSQL索引页

    磨砺技术珠矶,践行数据之道,追求卓越价值 

  • 相关阅读:
    Android_Studio常用插件
    Android_Studio 及SDK下载
    Ubuntu 16.04 LTS 正式发布:系统将持续更新5年
    Windows通用应用平台
    Jquery局部打印插件
    WEB打印插件Lodop
    WEB打印插件jatoolsPrinter
    hdu1863
    PromiseKit入门
    高速排序
  • 原文地址:https://www.cnblogs.com/gaojian/p/2590274.html
Copyright © 2011-2022 走看看