Tietokannan synkronoinnin helpottaminen

55 views
Skip to first unread message

Juhani Pirttilahti

unread,
Mar 18, 2019, 8:50:50 AM3/18/19
to rata.digitraffic.fi
Moro,

Ylläpidän omassa tietokannassa kopiota junien aikatauluista pollaamalla /trains?version -rajapintaa noin minuutin välein.

Tässä yhteydessä olen todennut täyden synkronoinnin digitrafficin tietosisällön kanssa hieman haasteelliseksi. Välillä tulee yhteyskatkoksia ja päivitysrutiini ei aina saavuta kaikkea sillä välin muuttunutta tietoa (nykyinen 2500? junan raja tulee äkkiä vastaan). Tässä tilanteessa jäljelle ei jää muuta vaihtoehtoa kuin ladata tulevaisuuden junat päivä kerrallaan ja verrata niitä oman tietokannan sisältöön.

Voisiko tähän kehittää parempaa keinoa?


Terveisin, Juhani

Teemu Sirkiä

unread,
Mar 18, 2019, 9:04:51 AM3/18/19
to rata.digitraffic.fi
Yksi mahdollinen keino voisi olla, että jos tuo 2500 junaa menee rikki, niin palautuu ainoastaan versionumeroiltaan pienimmät 2500 muutosta. Sen jälkeen tuota versionumerohakua voisi jatkaa tarvittavan määrän kertoja. Vai onko tuossa nyt jokin logiikka, millä perusteella ne 2500 junaa valitaan?

Solita / Jaakko

unread,
Mar 19, 2019, 2:45:40 AM3/19/19
to rata.digitraffic.fi
Tällä hetkellä junat järjestetään "order by version desc" eli 2500 uusinta junaa

Kuten mainittu, "order by version asc" olisi järkevämpi. Huonolla tuurilla tämä saattaa rikkoa jonkun sovelluksen, mutta hyötyihin nähden mielestäni hyvä muutos

Tein asiasta tiketin DPO-766

Solita / Jaakko

unread,
Mar 19, 2019, 7:48:03 AM3/19/19
to rata.digitraffic.fi
DPO-766 on nyt tuotannossa ja esimerkiksi kysely https://rata.digitraffic.fi/api/v1/trains?version=1 palauttaa todella vanhoja junia. Samalla muutettu kulkutietoviestien vastaavanlainen rajapinta.

Ps. sanoin aiemmin virheellisesti, että tällä hetkellä junat järjestetään version mukaan laskevaan järjestykseen. Näin ei ole vaan junat järjestetään lähtöpäivämäärä+junanumero

Vielä selkeytyksenä:

Nykyinen toiminta
1) haetaan 2500 vanhinta junaa, joiden versio on suurempi kuin versio-parametri
2) järjestetään ne lähtöpäivämäärä+junanumero mukaan

Aiempi toiminta:
1) haetaan 2500 uusinta junaa, joiden versio on suurempi kuin versio-parametri
2) järjestetään ne lähtöpäivämäärä+junanumero mukaan

Kiitoksia hyvästä kehitysehdotukesta
Reply all
Reply to author
Forward
0 new messages