Han löste SJ:s biljettkaos – med eget skript

2022-11-10 14:45  

30 minuters kodande. Det var allt utvecklaren Hannes Wideteg behövde för att få till en fix som åtgärdar bokningsproblemen på SJ:s överbelastade sajt.

Vid midnatt under natten mot onsdagen släppte SJ äntligen sina försenade och eftertraktade jul- och nyårsbiljetter. Kort därefter kraschade bokningssidan hos SJ, och många resenärer som var ute efter biljetter lyckades aldrig genomföra sina köp.

Skapade stor frustration

Kapacitetsproblemen på SJ:s sajt fortgick under hela onsdagen, och skapade en stor frustration hos många besökare.

En av de som drabbades av it-strulet var Hannes Wideteg, till vardags systemutvecklare på Tin Fonder. Under en tågresa från Lund upp till arbetsgivaren i Stockholm gjorde han flera försök att köpa biljetter till hemresan – men blev gång på gång utslängd från SJ-appen. 

Läs mer: SJ efter sajthaveriet: Fortsatt strul – efter 1,2 miljoner besök

Efter arbetsdagens slut satte sig Hannes Wideteg på sitt hotellrum, och bestämde sig för att lägga en halvtimmes javascript-kodande på att försöka lösa SJ:s problem. Det lyckades han med. 

– Jag blev frustrerad av SJ:s it-strul, och tänkte att det nog inte är så svårt att fixa. Det var det inte heller, säger han.

Överbelastade servrar hos SJ

Enligt Hannes Wideteg beror problemen med SJ:s sajt på att informationen om varje tågavgång, och hur mycket den kostar, hämtas individuellt från SJ:s servrar när en användare söker efter biljetter till sitt resmål. 

Hannes Wideteg, systemutvecklare hos Tin Fonder. Foto: Tin Fonder

Upplägget skapar enormt många anrop till SJ:s hemsida. Och om anropet misslyckas, på grund av överbelastningen, kraschar sajten och måste läsas in på nytt. Med resultatet att pågående bokning ofta stryks.

Läs mer: SJ:s nya supertåg ger bättre plats för cyklar – och bättre wifi

Hannes Widetegs kod körs direkt i webbläsaren, och gör att din browser kan skicka en serie om upp till tio anrop i rad till SJ:s bokningssida. Varje nytt anrop görs med en kort paus om bokningsinformationen inte kan läsas in korrekt.

”Min lösning är en branschstandard”

Javaskriptet skapar ingen extra belastning på SJ:s servrareller ändrar något på hemsidan. 

– Den här lösningen är egentligen en branschstandard när man skalar upp ett system för att klara en ökad belastning, säger Hannes Wideteg, som har lång erfarenhet av att arbeta med molnbaserade system som liknar SJ:s.

Kort efter att han fick javascriptet att fungera, publicerade Hannes Wideteg koden på Github tillsammans med en förklarande video. Sedan dröjde det inte länge innan andra frustrerade SJ-resenärer började kontakta honom. 

– Jag skrev en tweet om fixet som snabbt fick stor spridning. Många har hört av sig till mig och sagt att det här räddade deras julresa. Det har varit folk som försökte boka hela onsdagsnatten utan framgång, men med mitt skript funkade det direkt. 

Som utvecklare, har du några tankar om det som hänt SJ? 
– SJ säger att man har skalat upp serverkapaciteten, men det är uppenbart att de inte har stresstestat hela systemet på riktigt. Då hade man upptäckt de här problemen. Det skulle kunna vara så att SJ:s olika interna system inte riktigt fungerar med varandra efter uppskalningen. Då behöver man hantera mängden anrop som sker mot frontend (delen av systemet som användarna ser, reds anm) på sättet som mitt skript gör. 

Har SJ hört av sig till dig? 

– Nej, inte än. Men jag har fått höra att de känner till min lösning. Det är fritt fram för SJ att använda min kod om de vill. På ett sätt känns det synd att en privatperson som jag skulle behöva lösa deras problem, men å andra sidan är det skönt att kunna hjälpa till.

Skyller på Trafikverket

SJ:s jul- och nyårsbiljetter skulle egentligen ha släppts i september. Orsaken till att biljetterna försenats beror enligt SJ på att Trafikverket ligger efter i sin planering.  

I en SVT-intervju tar Trafikverket på sig en del av ansvaret, men säger också att endast en tredjedel av rådande problem kring tågavgångar kan kopplas till myndigheten.

Läs mer: Rekord: Här rullar det 2 km långa passagerartåget i Alperna

Kalle Wiklund

Mer om: SJ

Kommentarer

Välkommen att säga din mening på Ny Teknik.

Principen för våra regler är enkel: visa respekt för de personer vi skriver om och andra läsare som kommenterar artiklarna. Alla kommentarer modereras efter publiceringen av Ny Teknik eller av oss anlitad personal.

  Kommentarer

Debatt