Detta typ av fråga dyker upp då och då-- så vitt jag kan säga är det enda helt pålitliga sättet att göra det du har beskrivit, lagra uppdaterade ID:n i någon tabell i den första processen och markera dem som bearbetade i den andra. I grund och botten är detta att återuppfinna en meddelandekö i databasen. Du har beskrivit ganska bra hur en naiv lösning kommer att missa uppdateringar.
Att låta importprocessen markera uppdaterade rader kan göras ganska enkelt, eller till och med implementeras med hjälp av triggers i din datatabell. Om du bara har en konsumentprocess behöver du bara delete from updated_item returning item_id
för att få en lista över uppdateringar. Det låter som att det är mycket mer komplicerat men IMHO är det inte, verkligen. Funktioner som att kunna övervaka hur stor eftersläpningen är dyker också upp gratis.