PostgreSQLcung cấp tỷ lệ kèo bóng đá bộ quanghe
vàtỷ lệ kèo bóng đá
lệnh. Một phiên khách đăng ký sự quan tâm của nó đối với một kênh tỷ lệ kèo bóng đá cụ thể vớinghe
Lệnh (và có thể ngừng nghe vớiUndisten
lệnh). Tất cả các phiên nghe trên một kênh cụ thể sẽ được tỷ lệ kèo bóng đá bộ khi Atỷ lệ kèo bóng đá
Lệnh có tên kênh đó được thực thi bởi bất kỳ phiên nào. MỘTtải trọngHồiChuỗ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àtỷ lệ kèo bóng đá
Các lệnh như các lệnh SQL tỷ lệ kèo bóng đá thường. Sự xuất hiện củatỷ lệ kèo bóng đá
Tin nhắn sau đó có thể được phát hiện bằng cách gọipqnotifyes
.
hàmpqnotifyes
Trả về tỷ lệ kèo bóng đá tiếp theo từ danh sách các tỷ lệ kèo bóng đá tỷ lệ kèo bóng đá chưa được xử lý nhận được từ máy chủ. Nó trả về một con trỏ null nếu không có tỷ lệ kèo bóng đá đang chờ xử lý.pqnotifyes
, nó được coi là xử lý và sẽ bị xóa khỏi danh sách các tỷ lệ kèo bóng đá.
pgnotify *pqnotifyes (pgconn *Conn);
Sau khi xử lý Apgnotify
đối tượng được trả về bởipqnotifyes
, Hãy chắc chắn giải phóng nó bằngpqfreemem
. Nó đủ để giải phóngpgnotify
Con trỏ; Therelname
vàExtra
Các trường tỷ lệ kèo bóng đá đại diện cho phân bổ riêng biệt. (Tên của các trường này là lịch sử; đặ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ụ 33.2Đưa ra một chương trình mẫu minh họa cho việc sử dụng tỷ lệ kèo bóng đá bộ.
pqnotifyes
tỷ lệ kèo bóng đá thực sự đọc dữ liệu từ máy chủ; nó chỉ trả về các tin nhắn được hấp thụ trước đó bởi một người kháclibpqHàm. Trong các bản phát hành cổ xưa củalibpq, Cách duy nhất để đảm bảo nhận được thời giantỷ 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, sau đó kiểm trapqnotifyes
sau mỗiPQEXEC
. Mặc dù điều này vẫn hoạt động, nhưng nó tỷ lệ kèo bóng đá được lãng phí sức mạnh xử lý.
Cách tốt hơn để kiểm tratỷ 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 trapqnotifyes
. 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 để 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
/PQGetResult
hoặc đơn giản là sử dụngPQEXEC
. Tuy nhiên, bạn nên nhớ kiểm trapqnotifyes
sau mỗiPQGetResult
hoặcPQEXEC
, để xem liệu có bất kỳ tỷ lệ kèo bóng đá nào xuất hiện trong quá trình xử lý lệnh không.