Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản tỷ lệ kèo bóng đá được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
Tài liệu này dành cho phiên bản tỷ lệ kèo bóng đá được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

31.8. tỷ lệ kèo bóng đá bộ

PostgreSQLcung cấp không đồng bộ Thông tỷ lệ kèo bóng đá quaNgheThông tỷ lệ kèo bóng đá11045_11144nghelệnh (và có thể ngừng nghe vớiUnlistenlệnh). Tất cả các phiên lắng nghe Trên một kênh cụ thể sẽ được tỷ lệ kèo bóng đá bộ khi AThông tỷ lệ kèo bóng đáLệnh có tên kênh đó là được thực hiện bởi bất kỳ phiên. MỘT"tải trọng"Chuỗi có thể được truyền để truyền đạt dữ liệu bổ sung cho người nghe.

libpqỨng dụng gửinghe, Undisten,, VàThông tỷ lệ kèo bóng đáCác lệnh như SQL tỷ lệ kèo bóng đá thường lệnh. Sự xuất hiện củaThông tỷ lệ kèo bóng đáTin nhắn sau đó có thể được phát hiện bằng cách gọipqnotifyes.

hàmpqnotifyesTrả về Thông tỷ lệ kèo bóng đá tiếp theo từ danh sách thông tỷ lệ kèo bóng đá chưa được xử lý Tin nhắn nhận được từ máy chủ. Nó trả về một con trỏ null nếu Không có thông tỷ lệ kèo bóng đá đang chờ xử lý. Khi một thông tỷ lệ kèo bóng đá được trả về từpqnotifyes, nó được xem xét được xử lý và sẽ bị xóa khỏi danh sách các thông tỷ lệ kèo bóng đá.

12301_12584

Sau khi xử lý ApgnotifyĐối tượng Được trả về bởipqnotifyes, Hãy chắc chắn để Miễn phí nó vớipqfreemem. Nó là đủ để giải phóngpgnotifyCon trỏ; TherelnameExtraTrường tỷ lệ kèo bóng đá đại diện cho riêng biệt phân bổ. (Tên của các lĩnh vực này là lịch sử; trong đặc biệt, tên kênh tỷ lệ kèo bóng đá cần phải làm gì với Tên quan hệ.)

Ví dụ 31-2Đưa ra một chương trình mẫu minh họa cho việc sử dụng không đồng bộ thông tỷ lệ kèo bóng đá.

pqnotifytỷ lệ kèo bóng đá thực sự đọc dữ liệu từ máy chủ; nó chỉ trả về tin nhắn được hấp thụ trước đó bởi người kháclibpqHàm. TRONG Các bản phát hành trước củalibpq, duy nhất cách đảm bảo nhận được thời gian củaThông tỷ lệ kèo bóng đáTin nhắn liên tục gửi các lệnh, thậm chí các lệnh trống và sau đó kiểm trapqnotifyessau mỗiPQEXEC. Trong khi điều này vẫn hoạt động, nó là tỷ lệ kèo bóng đá được lãng phí sức mạnh xử lý.

13824_13852Thông tỷ lệ kèo bóng đáTin nhắn Khi bạn tỷ lệ kèo bóng đá có lệnh hữu ích để thực thi là gọiPQConsumeInput, sau đó kiểm trapqnotify. Bạn có thể sử dụngselect ()Để chờ dữ liệu đến từ máy chủ, do đó tỷ lệ kèo bóng đá sử dụngCPUsức mạnh trừ khi có việc gì đó. (Nhìn thấyPQSocketĐể có được số mô tả tệp thành Sử dụng vớiselect ().) Lưu ý rằng điều này sẽ hoạt động ok cho dù bạn gửi các lệnh vớiPQSendQuery/PQGetResulthoặc đơn giản là sử dụngPQEXEC. Tuy nhiên, bạn nên nhớ kiểm trapqnotifysau mỗiPQGetResulthoặcPQEXEC, để xem có bất kỳ thông tỷ lệ kèo bóng đá nào được đưa vào Trong quá trình xử lý lệnh.