天天看點

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

再來看 ps -ef|grep postgre:

發現多了一個  程序号19924/父程序号19651 的 名為postgres的程序。

這表明:為給session A 的psql 服務,伺服器端啟動了一個程序 号為19924的back end prosgres。

發現又多了一個  程序号19938/父程序号19651 的 名為postgres的程序。

這表明:為給session B的psql 服務,伺服器端啟動了一個程序 号為19938的back end prosgres。

再回到session A, 随便執行一條指令:

這表明 資訊的發送者實際上是 和notify 端對應的 背景postgres程序。