Postgres5403_6081
libpqỨng dụng Gửi nghe và Các lệnh Unlisten là truy vấn SQL thông thường. Subsequently, arrival of Thông kèo bóng đá hôm nay và ngày mai thông kèo bóng đá hôm nay và ngày mai có thể được phát hiện bằng cách gọi pqnotifyes ().
pqnotifyesTrả về tiếp theo Thông kèo bóng đá hôm nay và ngày mai từ danh sách các tin nhắn thông kèo bóng đá hôm nay và ngày mai chưa được xử lý nhận được từ phần phụ trợ. Returns NULL if there are no pending notifications. Khi một thông kèo bóng đá hôm nay và ngày mai được trả về từ pqnotifyes, nó được coi là xử lý và sẽ bị xóa khỏi danh sách Thông kèo bóng đá hôm nay và ngày mai.
pgnotify * pqnotifyes (pgconn * Conn); typedef struct pgnotify char relname [Được đặt tên là]; /* Tên quan hệ * Chứa dữ kèo bóng đá hôm nay và ngày mai */ int be_pid; /* process id of backend */ Pgnotify;Sau khi xử lý một đối tượng pgnotify được trả về bởipqnotifyes, be sure to free it withfree ()to avoid a memory leak.
Lưu ý:inPostgres6.4 trở lên,be_pidlà thông kèo bóng đá hôm nay và ngày mai cho phụ trợ của, trong khi trong các phiên bản trước đó, nó là Luôn luôn là phụ trợ của bạnPID.
Chương trình mẫu thứ hai đưa ra một ví dụ về việc sử dụng Thông kèo bóng đá hôm nay và ngày mai không đồng bộ.
pqnotifyes ()kèo bóng đá hôm nay và ngày mai thực sự đọc Dữ liệu phụ trợ; nó chỉ trả về tin nhắn được hấp thụ trước đó bởi kháclibpqHàm. Trong trước Phát hànhlibpq, Cách duy nhất để đảm bảo nhận được kịp thời các tin nhắn thông kèo bóng đá hôm nay và ngày mai được liên tục gửi Truy vấn, thậm chí là trống, sau đó kiểm trapqnotifyes ()sau mỗipqexec (). Trong khi điều này vẫn hoạt động, nó kèo bóng đá hôm nay và ngày mai được như một sự lãng phí sức mạnh xử lý.
Cách tốt hơn để kiểm tra thông kèo bóng đá hôm nay và ngày mai tin nhắn khi bạn không có Các truy vấn hữu ích để thực hiện là gọiPQConsumeInput (), sau đó kiểm trapqnotifyes (). Bạn có thể sử dụngChọn8298_8357CPUsức mạnh trừ khi Có một cái gì đó để làm. (Nhìn thấypqsocket ()Để có được số mô tả tệp để sử dụng vớiChọn.) Lưu ý rằng điều này sẽ hoạt động tốt cho dù bạn có Gửi truy vấn vớiPQSendQuery/PQGetResulthoặc đơn giản là sử dụngPQEXEC. Bạn nên, Tuy nhiên, hãy nhớ kiểm trapqnotifyes ()sau mỗiPQGetResulthoặcPQexec, để xem có bất kỳ thông kèo bóng đá hôm nay và ngày mai nào đến trong thời gian xử lý truy vấn.