PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Kích hoạt Postgres để cập nhật bộ đệm Java

Tôi không thể nói chuyện với MyBatis, nhưng tôi có thể nói với bạn rằng PostgreSQL có hệ thống xuất bản / đăng ký được tích hợp sẵn, điều này sẽ cho phép bạn làm điều này mà ít bị hack hơn nhiều.

Đầu tiên, hãy thiết lập trình kích hoạt trên widgets chạy trên mọi thao tác chèn, cập nhật và xóa. Yêu cầu nó trích xuất khóa chính và NOTIFY widgets_changed, id . (Chà, từ PL / pgSQL, bạn có thể muốn PERFORM pg_notify(...) .) PostgreSQL sẽ phát thông báo của bạn nếu và khi giao dịch đó được thực hiện, làm cho cả thông báo và các thay đổi dữ liệu tương ứng hiển thị với các kết nối khác.

Trong ứng dụng khách, bạn muốn chạy một chuỗi dành riêng để cập nhật bản đồ này. Nó sẽ kết nối với PostgreSQL, LISTEN widgets_changed để bắt đầu thông báo xếp hàng, SELECT * FROM widgets để điền vào bản đồ và đợi thông báo đến. (Kiểm tra các thông báo dường như liên quan đến việc thăm dò trình điều khiển JDBC , điều này thật tệ, nhưng không tệ như bạn nghĩ. Xem PgNotificationPoller để triển khai cụ thể.) Sau khi bạn thấy thông báo, hãy tra cứu hồ sơ được chỉ định và cập nhật bản đồ của bạn. Lưu ý rằng điều quan trọng là phải LISTEN trước SELECT * ban đầu , vì các bản ghi có thể được thay đổi giữa SELECT *LISTEN .

Cách tiếp cận này không yêu cầu PostgreSQL biết bất kỳ điều gì về ứng dụng của bạn. Tất cả những gì nó phải làm là gửi thông báo; ứng dụng của bạn thực hiện phần còn lại. Không có tập lệnh shell, không có HTTP và không có lệnh gọi lại, cho phép bạn cấu hình lại / triển khai lại ứng dụng của mình mà không cần phải cấu hình lại cơ sở dữ liệu. Nó chỉ là một cơ sở dữ liệu và nó có thể được sao lưu, khôi phục, sao chép, v.v. mà không có thêm bất kỳ biến chứng nào. Tương tự, ứng dụng của bạn không có thêm phức tạp:tất cả những gì nó cần là kết nối với PostgreSQL mà bạn đã có.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. GitHub Actions:Cách kết nối với Postgres trong GithHub Actions

  2. Tìm điểm gần nhất trong Pandas DataFrames

  3. Sử dụng SQL làm xlookup

  4. Tham chiếu cột không rõ ràng trong INSERT ... ON CONFLICT DO UPDATE

  5. Cách chuyển đổi boolean trong postgres trong một truy vấn