Phiên bản cách đọc kèo bóng đá được hỗ trợ:6.4
Tài liệu này dành cho phiên bản cách đọc kèo bóng đá đượ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ế.

Không đồng bộ Thông cách đọc kèo bóng đá

PostgresHỗ trợ không đồng bộ Thông cách đọc kèo bóng đá thông qua các lệnh nghe và thông cách đọc kèo bóng đá. Một phụ trợ đăng ký sự quan tâm của nó trong một điều kiện thông cách đọc kèo bóng đá cụ thể với Lệnh lắng nghe (và có thể ngừng lắng nghe với Unlisten yêu cầu). Tất cả các phụ trợ lắng nghe trên một điều kiện cụ thể sẽ thông cách đọc kèo bóng đá không đồng bộ khi thông cách đọc kèo bóng đá về tên điều kiện đó được thực hiện bởi bất kỳ phụ trợ. Không có thông tin bổ sung nào được thông qua thông cách đọc kèo bóng đá cho người nghe. Do đó, thông thường, bất kỳ dữ liệu thực tế nào cần được truyền đạt được chuyển qua cơ sở dữ liệu mối quan hệ. Thông thường tên điều kiện giống như liên kết quan hệ, nhưng không cần thiết phải có bất kỳ liên quan nào mối quan hệ.

libpqỨng dụng Gửi nghe và Các lệnh Unlisten là truy vấn SQL thông thường. Sau đó, sự xuất hiện của Thông cách đọc kèo bóng đá thông cách đọc kèo bóng đá có thể được phát hiện bằng cách gọi pqnotifyes ().

  • pqnotifyesTrả về tiếp theo Thông cách đọc kèo bóng đá từ danh sách các tin nhắn thông cách đọc kèo bóng đá chưa được xử lý nhận được từ phần phụ trợ. Trả lại null nếu không có đang chờ xử lý thông cách đọc kèo bóng đá. Khi một thông cách đọc kèo bóng đá được trả về từ pqnotifyes, nó được coi là xử lý và sẽ bị xóa khỏi danh sách Thông cách đọc kèo bóng đá.

    pgnotify * pqnotifys (pgconn * Conn);
    
    typedef struct pgnotify
    
            char relname [Được đặt tên là];       /* Tên quan hệ
                                                     * Chứa dữ cách đọc kèo bóng đá */
            int be_pid;                     / * xử lý ID phụ trợ */
         Pgnotify;
    Sau khi xử lý một đối tượng pgnotify được trả về bởi pqnotifyes, be be Chắc chắn để giải phóng nó với miễn phí () để tránh rò rỉ bộ nhớ. Lưu ý: trongPostgres6.4 trở lên, be_pid là thông cách đọc kèo bóng đá của phụ trợ, trong khi trong các phiên bản trước đó là Luôn luôn là phụ trợ của bạn.

Chương trình mẫu thứ hai đưa ra một ví dụ về việc sử dụng Thông cách đọc kèo bóng đá không đồng bộ.

pqnotifys () cách đọc kèo bóng đá thực sự đọc dữ liệu phụ trợ; nó chỉ trả về 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 trước củalibpq, Cách duy nhất để đảm bảo nhận được kịp thời Thông cách đọc kèo bóng đá cho các tin nhắn liên tục gửi các truy vấn, thậm chí các tài liệu trống, và sau đó kiểm tra pqnotifyes () sau mỗi pqexec (). Trong khi điều này vẫn còn Tác phẩm, nó không được chấp nhận như một sự lãng phí sức mạnh xử lý. Tốt hơn cách kiểm tra thông cách đọc kèo bóng đá tin nhắn khi bạn không có truy vấn hữu ích Tạo là để gọi pqconsumeInput (), sau đó kiểm tra pqnotifys (). Bạn có thể Sử dụng chọn (2) để chờ dữ liệu phụ trợ đến, do đó không sử dụng Sức mạnh CPU trừ khi có việc gì đó để làm. Lưu ý rằng điều này sẽ hoạt động Ok cho dù bạn sử dụng pqsendQuery/pqGetResult hay pqExec cũ đơn giản cho Truy vấn. Tuy nhiên, bạn nên nhớ kiểm tra pqnotifyes () sau Mỗi pqgetResult hoặc pqExec để xem có bất kỳ thông cách đọc kèo bóng đá nào được đưa vào Trong quá trình xử lý truy vấn.