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 kèo bóng đá hôm nay và ngày mai đượ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
Tài liệu này dành cho phiên bản kèo bóng đá hôm nay và ngày mai được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

27.6. kèo bóng đá hôm nay và ngày mai bộ

PostgreSQLƯu đãi kèo bóng đá hôm nay và ngày mai bộ quaNghekè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ửingheUndistenCá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àmpqnotifyesTrả 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ỏ; TherelnameExtraTrườ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.

pqnotifyeskè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 trapqnotifyessau 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/PQGetResulthoặc đơn giản là sử dụngPQEXEC. Tuy nhiên, bạn nên nhớ kiểm trapqnotifyessau mỗi15523_15536hoặ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.