sql >> Databáze >  >> RDS >> PostgreSQL

Oznamování změn postgres v java aplikaci

Jaké jiné řešení mám pro tento problém?

Použijte LISTEN a NOTIFY sdělit své aplikaci, že se věci změnily.

Můžete odeslat NOTIFY ze spouštěče, který také zaznamenává změny v tabulce fronty.

Budete potřebovat připojení PgJDBC, které odeslalo LISTEN pro události, které používáte. Musí se dotazovat databáze zasíláním pravidelných prázdných dotazů ("" ) pokud používáte SSL; pokud nepoužíváte SSL, můžete se tomu vyhnout pomocí kontrol asynchronních oznámení. Budete muset rozbalit Connection objekt z vašeho fondu připojení, abyste mohli přetypovat základní připojení do PgConnection používat poslouchat/upozorňovat s. Viz související odpověď

Bit producent/spotřebitel bude těžší. Chcete-li mít v PostgreSQL několik souběžných uživatelů bezpečných při zhroucení, musíte použít poradní zamykání pomocí pg_try_advisory_lock(...) . Pokud nepotřebujete souběžné spotřebitele, je to snadné, stačí SELECT ... LIMIT 1 FOR UPDATE po řadě.

Doufejme, že 9.4 bude obsahovat jednodušší metodu přeskakování zamčených řádků pomocí FOR UPDATE , protože je na tom práce ve vývoji.



  1. Použití funkcí password_hash a password_verify PHP 5.5

  2. Jak BIN() funguje v MariaDB

  3. Jak funguje Tan() v PostgreSQL

  4. Další vylepšení showplanu? Ano prosím!