PostgreSQLHỗ trợ kèo bóng đá cúp c2 bộ quaNghevàkèo bóng đá cúp c2lệnh. Một thanh ghi phụ trợ sự quan tâm của nó đối với một điều kiện kèo bóng đá cúp c2 cụ thể vớinghelệnh (và có thể ngừng nghe vớiUnlistenlệnh). Tất cả phụ trợ Lắng nghe trên một điều kiện cụ thể sẽ được kèo bóng đá cúp c2 không đồng bộ khi akèo bóng đá cúp c2của đó Tên điều kiện được thực hiện bởi bất kỳ phụ trợ. Không có thêm Thông tin được truyền từ kèo bóng đá cúp c2 cho người nghe. Như vậy, Thông thường, bất kỳ dữ liệu thực tế nào cần được truyền đạt là được chuyển qua một mối quan hệ cơ sở dữ liệu. Thường là điều kiện Tên giống như mối quan hệ liên quan, nhưng nó không cần thiết để có bất kỳ mối quan hệ liên quan nào.
libpqỨng dụng gửinghevàUnitSenlệnh
như lệnh SQL kèo bóng đá cúp c2 thường. Sau đó, sự xuất hiện củakèo bóng đá cúp c2Tin nhắn có thể được phát hiện bằng cách gọipqnotifyes
.
pqnotifyes
Trả về tiếp theo
kèo bóng đá cúp c2 từ danh sách các tin nhắn kèo bóng đá cúp c2 chưa được xử lý
nhận được từ phần phụ trợ. Trả lại null nếu không có
kèo bóng đá cúp c2 đang chờ xử lý. Khi một kèo bóng đá cúp c2 được trả về từ
Pqnotifyes, nó được coi là xử lý và sẽ bị xóa khỏi
Danh sách các kèo bóng đá cúp c2.
pgnotify * pqnotifyes (pgconn * Conn); typedef struct pgnotify char relname [Được đặt tên là]; /* Tên quan hệ * Chứa dữ liệu */ int be_pid; / * xử lý ID phụ trợ */ Pgnotify;
Sau khi xử lý ApgnotifyĐối tượng được trả về bởipqnotifyes
,,
Hãy chắc chắn giải phóng nó vớifree ()
Để tránh rò rỉ bộ nhớ.
Lưu ý:inPostgreSQL6.4 trở lên,be_pidLà kèo bóng đá cúp c2 phụ trợ, trong khi trong các phiên bản trước đó, nó luôn luôn làPIDcủa riêng bạn phụ trợ.
Chương trình mẫu thứ hai đưa ra một ví dụ về việc sử dụng kèo bóng đá cúp c2 bộ.
pqnotifys ()
kèo bóng đá cúp c2 thực sự
Đọc dữ liệu phụ trợ; 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, The
cách duy nhất để đảm bảo nhận được kèo bóng đá cúp c2 kèo bóng đá cúp c2 kịp thời
liên tục gửi các truy vấn, thậm chí là trống, sau đó kiểm trapqnotifys ()
sau mỗipqexec ()
. Trong khi điều này vẫn hoạt động,
Nó kèo bóng đá cúp c2 được lãng phí sức mạnh xử lý.
Cách tốt hơn để kiểm tra kèo bóng đá cúp c2 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 trapqnotifys ()
. Bạn có thể sử dụngselect ()
Để chờ dữ liệu phụ trợ đến,
do đó kèo bóng đá cúp c2 sử dụngCPUsứ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ớiselect ()
.) Lưu ý rằng
Điều này sẽ hoạt động ok cho dù bạn gửi truy vấn vớiPQSendQuery
/PQGetResult
hoặc đơn giản là sử dụngPQEXEC
. Tuy nhiên, bạn nên nhớ kiểm trapqnotifies ()
sau mỗiPQGetResult
hoặcPQEXEC
, để xem có bất kỳ kèo bóng đá cúp c2 nào được đưa vào
Trong quá trình xử lý truy vấn.