sql >> Database >  >> RDS >> PostgreSQL

Tijdstempel binnen transactie instellen

Dit soort vraag komt van tijd tot tijd naar voren -- voor zover ik weet, is de enige volledig betrouwbare manier om te doen wat je hebt beschreven, bijgewerkte ID's op te slaan in een tabel in het eerste proces en ze te markeren als verwerkt in het tweede proces. In feite is dit het opnieuw uitvinden van een berichtenwachtrij in de database. Je hebt heel goed beschreven hoe een naïeve oplossing updates zal missen.

Het markeren van bijgewerkte rijen door het importproces kan vrij eenvoudig worden gedaan, of zelfs worden geïmplementeerd met behulp van triggers in uw gegevenstabel. Als u maar één consumentenproces heeft, hoeft u alleen maar delete from updated_item returning item_id om een ​​lijst met updates te krijgen. Het klinkt alsof het een stuk ingewikkelder is, maar IMHO is het dat niet echt. Functies zoals het kunnen controleren hoe groot de achterstand is, komen ook gratis naar voren.



  1. Tekst zoeken in meerdere velden MySQL

  2. Bring Your Own Cloud (BYOC) vs. dedicated hosting bij ScaleGrid

  3. Stel group_concat_max_len in op een PDO-query

  4. Hoe combineer je LIKE met IN in een MYSQL-query?