sql >> Database >  >> RDS >> PostgreSQL

Postgres-wijzigingen in Java-toepassing op de hoogte stellen

Welke andere oplossing heb ik voor dit probleem?

Gebruik LISTEN en NOTIFY om uw app te vertellen dat er dingen zijn veranderd.

U kunt de NOTIFY van een trigger die ook wijzigingen registreert in een wachtrijtabel.

Je hebt een PgJDBC-verbinding nodig die een LISTEN . heeft verzonden voor de gebeurtenis(sen) die u gebruikt. Het moet de database pollen door periodieke lege query's te verzenden ("" ) als u SSL gebruikt; als u geen SSL gebruikt, kan dit worden voorkomen door gebruik te maken van de asynchrone meldingscontroles. U moet de Connection uitpakken object uit uw verbindingspool om de onderliggende verbinding te kunnen casten naar een PgConnection om mee te luisteren/melden. Zie gerelateerd antwoord

De producent/consument-bit zal moeilijker zijn. Om meerdere crashveilige gelijktijdige consumenten in PostgreSQL te hebben, moet u adviserende vergrendeling gebruiken met pg_try_advisory_lock(...) . Als u geen gelijktijdige consumenten nodig heeft, is het eenvoudig, u SELECT ... LIMIT 1 FOR UPDATE een rij tegelijk.

Hopelijk bevat 9.4 een eenvoudigere methode om vergrendelde rijen over te slaan met FOR UPDATE , want er is werk aan de winkel.



  1. Tel dagen tussen twee datums, met uitzondering van weekends (alleen MySQL)

  2. Waarom retourneert IS NIET NULL NULL-waarden voor een Varchar (max) in SQL Server?

  3. Retourneer de parameters van een opgeslagen procedure of door de gebruiker gedefinieerde functie in SQL Server (T-SQL-voorbeelden)

  4. SQLite bestellen op