Postgresql 7.4.30 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 27.libpq- C Thư viện | 10652_10666 | Tiếp theo |
PostgreSQLƯu đãi kèo bóng đá hôm nay và ngày mai bộ quaNghevàkèo bóng đá hôm nay và ngày mailệnh. Một phiên khách đăng ký sự quan tâm của nó trong một điều kiện kèo bóng đá hôm nay và ngày mai cụ thể vớiNghelệnh (và có thể dừng lắng nghe vớiUnlisten11384_11489kèo bóng đá hôm nay và ngày mailệnh với tên điều kiện đó được thực hiện bởi bất kỳ phiên. KHÔNG Thông tin bổ sung được chuyển từ kèo bóng đá hôm nay và ngày mai cho người nghe. Do đó, thông thường, bất kỳ dữ liệu thực tế nào cần Truyền đạt được chuyển qua bảng cơ sở dữ liệu. Thông thường, Tên điều kiện giống như bảng liên kết, nhưng nó là không cần thiết để có bất kỳ bảng liên kết nào.
libpqỨng dụng gửinghevàUndistenCác lệnh như các lệnh SQL kèo bóng đá hôm nay và ngày mai thường. Các
Sự xuất hiện củakèo bóng đá hôm nay và ngày maiTin nhắn có thể
sau đó được phát hiện bằng cách gọipqnotifyes
.
hàmpqnotifyes
Trả về
kèo bóng đá hôm nay và ngày mai tiếp theo từ danh sách kèo bóng đá hôm nay và ngày mai 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ó kèo bóng đá hôm nay và ngày mai đang chờ xử lý. Khi một kèo bóng đá hôm nay và ngày mai là
đã trở về từpqnotifyes
, đó là
được coi là xử lý và sẽ bị xóa khỏi danh sách
kèo bóng đá hôm nay và ngày mai.
pgnotify * pqnotifyes (pgconn * Conn); typedef struct pgnotify char *relname; / * Tên điều kiện kèo bóng đá hôm nay và ngày mai */ int be_pid; / * xử lý ID của quá trình máy chủ */ char *thêm; / * Tham số kèo bóng đá hôm nay và ngày mai */ Pgnotify;
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ỏ; TherelnamevàExtraTrường kèo bóng đá hôm nay và ngày mai đại diện cho riêng biệt
phân bổ. (Hiện tại,ExtraTrường kèo bóng đá hôm nay và ngày mai được sử dụng và sẽ luôn chỉ vào một chuỗi trống.)
Lưu ý:inPostgreSQL6.4 trở lên,be_pidlà của máy chủ kèo bóng đá hôm nay và ngày mai quá trình, trong khi trong các phiên bản trước đó, nó luôn luôn làPIDcủa máy chủ của riêng bạn quá trình.
Ví dụ 27-2Đưa ra một chương trình mẫu minh họa cho việc sử dụng không đồng bộ kèo bóng đá hôm nay và ngày mai.
pqnotifyes
kèo bóng đá hôm nay và ngày mai thực sự
Đọc dữ liệu từ máy chủ; nó chỉ trả về tin nhắn trước đó
được hấp thụ bởi người kháclibpqHàm. Trong các bản phát hành trước củalibpq, Cách duy nhất để đảm bảo biên lai kịp thời
củakèo bóng đá hôm nay và ngày maiTin 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
. Trong khi điều này vẫn hoạt động, nó là
kèo bóng đá hôm nay và ngày mai được lãng phí sức mạnh xử lý.
Cách tốt hơn để kiểm trakèo bóng đá hôm nay và ngày maiTin nhắn Khi bạn kèo bóng đá hôm nay và ngày mai 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 đó kèo bóng đá hôm nay và ngày mai sử dụngCPUsức mạnh trừ khi có việc gì đó.
(Nhìn thấyPQSocket
Để có được tệp
Số mô tả để sử dụng vớiselect ()
.) Lưu ý rằng điều này sẽ hoạt động tốt 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ỗi15523_15536
hoặcPQEXEC
, để xem có bất kỳ kèo bóng đá hôm nay và ngày mai nào được đưa vào
Trong quá trình xử lý lệnh.