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

Thông báo các thay đổi của postgres đối với ứng dụng java

Tôi có giải pháp nào khác cho vấn đề này?

Sử dụng LISTENNOTIFY để nói với ứng dụng của bạn rằng mọi thứ đã thay đổi.

Bạn có thể gửi NOTIFY từ trình kích hoạt cũng ghi lại các thay đổi trong bảng hàng đợi.

Bạn sẽ cần kết nối PgJDBC đã gửi LISTEN cho (các) sự kiện bạn đang sử dụng. Nó phải thăm dò cơ sở dữ liệu bằng cách gửi các truy vấn trống định kỳ ("" ) nếu bạn đang sử dụng SSL; nếu bạn không sử dụng SSL, điều này có thể tránh được bằng cách sử dụng kiểm tra thông báo không đồng bộ. Bạn sẽ cần mở Connection đối tượng từ nhóm kết nối của bạn để có thể truyền kết nối cơ bản tới một PgConnection để sử dụng nghe / thông báo với. Xem câu trả lời liên quan

Nhà sản xuất / người tiêu dùng sẽ khó hơn. Để có nhiều người tiêu dùng đồng thời an toàn với sự cố trong PostgreSQL, bạn cần sử dụng khóa tư vấn với pg_try_advisory_lock(...) . Nếu bạn không cần người tiêu dùng đồng thời thì thật dễ dàng, bạn chỉ cần SELECT ... LIMIT 1 FOR UPDATE một hàng tại một thời điểm.

Hy vọng rằng 9.4 sẽ bao gồm một phương pháp dễ dàng hơn để bỏ qua các hàng bị khóa với FOR UPDATE , vì nó đang được phát triển.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cài đặt Odoo trên Mac Không thể Thực thi Lệnh LESSC

  2. Tương đương với univot () trong PostgreSQL

  3. Câu lệnh PostgreSQL IF

  4. Nhập kết xuất MySQL vào cơ sở dữ liệu PostgreSQL

  5. Heroku Postgres:Quá nhiều mối quan hệ. Tôi làm cách nào để loại bỏ các kết nối này?