Jobstream, hur undviker man off-by-one-problematik när man hämtar ut via datum

Exempel: Vi vill, från jobstream-api:t, hämta hem alla jobb mellan sekund 2.00 och 5.00 av 2021-02-24 13:05, med hjälp av två anrop.

Ska detta göras m.h.a slagningar av typ

A: (Inklusive, första slutdatum och andra startdatum är båda :03)

date updated-before-date
2021-02-24T13:05:02 2021-02-24T13:05:03
2021-02-24T13:05:03 2021-02-24T13:05:05

eller

B: (Exklusive)

date updated-before-date
2021-02-24T13:05:02 2021-02-24T13:05:03
2021-02-24T13:05:04 2021-02-24T13:05:03

för att undvika att tappa annonser (viktigast!) men samtidigt inte få dubletter
(så man slipper skriva dedupliceringskod)?

Om ni sparar datan med millisekundprecision så skulle B kunna innebära att man inte får med annonser
publicerade t.ex. 2021-02-24T13:05:03.5

Hej Rasmus, ber om ursäkt att svaret dröjde!
Har inte hunnit leta reda på ett perfekt case, två annonser publicerade en sekund isär, men jag tror jag vågar svara att B ska räcka.
Vi sparar annonserna med millisekunder men dom är alltid .000 så sekunden ska betraktas som minsta enhet datumstämpeln.

Sen är det nog egentligen inget att oroa sig för. Om man exemplevis använder stream för att hålla en kopia av alla publicerade annonser i en relations-databas så behöver man en hantering för att göra insert ELLER update när nya annonshändelser för kompletta annonser kommer i streamen.
Eftersom en annons som är uppdaterad inte skiljer sig från en nypublicering. Man skulle kunna använda sig av samma hantering för att hantera eventuella problem från överlappande tids-spann.

1 gillning