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 soi kèo bóng đá truoctran đượ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

33.8. soi kèo bóng đá truoctran bộ

PostgreSQLcung cấp soi kèo bóng đá truoctran bộ thông quangheThông soi kèo bóng đá truoctranlệnh. Một phiên khách đăng ký sự quan tâm của nó đối với một kênh thông soi kèo bóng đá truoctran cụ thể vớinghelệnh (và có thể ngừng nghe vớiUndistenlệnh). Tất cả các phiên nghe trên một kênh cụ thể sẽ được soi kèo bóng đá truoctran bộ khi AThông soi kèo bóng đá truoctranLệnh có tên kênh đó được thực thi bởi bất kỳ phiên nào. MỘTHồitả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, UndistenThông soi kèo bóng đá truoctranCác lệnh như các lệnh SQL thông thường. Sự xuất hiện củaThông soi kèo bóng đá truoctranTin nhắn sau đó có thể được phát hiện bằng cách gọipqnotifyes.

hàmpqnotifyesTrả về thông soi kèo bóng đá truoctran tiếp theo từ danh sách các thông soi kèo bóng đá truoctran thông soi kèo bóng đá truoctran 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ó thông soi kèo bóng đá truoctran đang chờ xử lý.pqnotify, nó được coi là xử lý và sẽ bị xóa khỏi danh sách các thông soi kèo bóng đá truoctran.

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óngpgnotifyCon trỏ; TheRelnameExtraTrường soi kèo bóng đá truoctran đại diện cho phân bổ riêng. (Tên của các trường này là lịch sử; đặc biệt, tên kênh soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran bộ.

pqnotifyessoi kèo bóng đá truoctran 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 kịp thờiThông soi kèo bóng đá truoctranTin nhắn đã liên tục gửi các lệnh, thậm chí các lệnh trống, sau đó kiểm trapqnotifyessau mỗiPQEXEC. Mặc dù điều này vẫn hoạt động, nhưng nó soi kèo bóng đá truoctran được lãng phí sức mạnh xử lý.

Một cách tốt hơn để kiểm traThông soi kèo bóng đá truoctranTin nhắn Khi bạn soi kèo bóng đá truoctran 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 đó soi kèo bóng đá truoctran 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/PQGetResulthoặc đơn giản là sử dụngPQEXEC. Tuy nhiên, bạn nên nhớ kiểm trapqnotifyessau mỗiPQGetResulthoặcPQEXEC, để xem liệu có bất kỳ thông soi kèo bóng đá truoctran nào được đưa vào trong quá trình xử lý lệnh không.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu soi kèo bóng đá truoctran chính xác, soi kèo bóng đá truoctran khớpMẫu nàyĐể soi kèo bóng đá truoctran cáo vấn đề tài liệu.