PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Уведомяване за промени в postgres в java приложение

Кое друго решение имам за този проблем?

Използвайте LISTEN и NOTIFY да кажете на приложението си, че нещата са се променили.

Можете да изпратите NOTIFY от тригер, който също записва промени в таблица на опашката.

Ще ви трябва PgJDBC връзка, която е изпратила LISTEN за събитието/събитията, които използвате. Той трябва да анкетира базата данни, като изпраща периодични празни заявки ("" ) ако използвате SSL; ако не използвате SSL, това може да бъде избегнато чрез използване на проверки за асинхронни известия. Ще трябва да развиете Connection обект от вашия пул за връзки, за да можете да прехвърлите основната връзка към PgConnection да използвате слушане/уведомяване с. Вижте свързания отговор

Битът производител/потребител ще бъде по-труден. За да имате няколко едновременни потребители, безопасни при сривове в PostgreSQL, трябва да използвате съветно заключване с pg_try_advisory_lock(...) . Ако не се нуждаете от едновременни потребители, тогава е лесно, просто SELECT ... LIMIT 1 FOR UPDATE ред по ред.

Надяваме се, че 9.4 ще включва по-лесен метод за пропускане на заключени редове с FOR UPDATE , тъй като има работа в процес на разработка.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Получаване на име на текущата функция вътре във функцията с plpgsql

  2. Плъзгаща се средна въз основа на времеви печати в PostgreSQL

  3. Инсталацията на Odoo на Mac не можа да изпълни команда LESSC

  4. n-ти процентил изчисления в postgresql

  5. Как да ограничим достъпа до база данни в PostgreSQL