PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Ustawianie znacznika czasu wewnątrz transakcji

To rodzaj pytania pojawia się od czasu do czasu - o ile wiem, jedynym całkowicie niezawodnym sposobem jest wykonanie tego, co opisałeś, przechowywanie zaktualizowanych identyfikatorów w jakiejś tabeli w pierwszym procesie i oznaczanie ich jako przetworzonych w drugim. Zasadniczo jest to ponowne wymyślenie kolejki wiadomości w bazie danych. Całkiem dobrze opisałeś, jak naiwne rozwiązanie pomija aktualizacje.

Po zaktualizowaniu wierszy znacznika procesu importowania można to zrobić dość łatwo, a nawet zaimplementować za pomocą wyzwalaczy w tabeli danych. Jeśli masz tylko jeden proces konsumencki, wystarczy delete from updated_item returning item_id aby uzyskać listę aktualizacji. Wygląda na to, że jest to o wiele bardziej skomplikowane, ale IMHO tak nie jest, naprawdę. Funkcje, takie jak możliwość monitorowania, jak duże są zaległości, pojawiają się również za darmo.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wygenerować skrypt CREATE dla kilku tabel w pgAdmin III?

  2. Po aktualizacji do macOS Big Sur nie mogę połączyć się z bazą danych PostgreSQL za pomocą MAMP

  3. Laravel gdzie warunek - zapytanie pgsql

  4. Railsy Postgresql wiele schematów i ta sama nazwa tabeli

  5. Grupuj według określonej kolumny w PostgreSQL