Page 1 of 3

Tung belastning på API

Posted: 07 Apr 2013, 11:59
by Drassen
Hej kära api-användare.

Precis som ni uppmärksammat tidigare så belastar API requests vår server en hel del. På sistone har känningarna ökat, vilket tyvärr lett till att det finns risk att det påverkar spelets stabilitet när spelare är ute och tar zoner.
Ett alternativ är att placera api på en helt egen server och låta API endast sega ner andra API-anrop. Detta är dock för dyrt i dagsläget, sett till hur mycket som doneras/månad. (privat donerade servrar är inte längre ett alternativ. Vi testade det på olika sätt tidigare, men det slutar bara med att det stjäl för mycket tid i underhåll på olika sätt. Nu kör vi bara Amazon, vilket är väldigt stabilt men dyrare.)

Ett annat alternativ är att se över hur API anrop ska göras, hur ofta, hur mycket, osv. Vilket vi avser börja med.

Det hela är lite av ett dilemma eftersom vi mer än gärna ser tredjepartsprodukter utvecklas, något som vi alla vet berikar turf. Samtidigt är det något som stjäl både tid och till viss del pengar från projektet. Vi måste ha ett bra förstående och lyssna på varandra som API skapare och API nyttjare för att det hela ska bli så bra som möjligt.

Jag tänkte att vi kan diskutera API-belastning i denna tråd.

Vi börjar med steg ett:
Hur använder ni API idag? Beskriv gärna anrop samt frekvens. (Vi har redan sett att det peakar med 10-minuts intervaller.)

Re: Tung belastning på API

Posted: 07 Apr 2013, 17:38
by AJ_
TurfWidget hämtar http://api.turfgame.com/v1/user/<email>. Det sker per default var 30:e minut eller manuellt på request av användaren. Intervallet kan ändras till 2min, 15min, 30min, 1h, 4h eller aldrig av användaren.
Enligt Plays statistik har den drygt 400 aktiva installationer.

Re: Tung belastning på API

Posted: 07 Apr 2013, 18:50
by Drassen
ok, känns snällt. fler?

Re: Tung belastning på API

Posted: 07 Apr 2013, 20:54
by whiterocker
Turf Locations kommer att hämta alla zoner (http://api.turfgame.com/v3/zones) vilket sker max en gång/24h (en viktig begränsning) och som dessutom något turfaren i sig måste utföra eftersom det bör göras över Wifi.

När appen väl är igång så kontrolleras de närmsta zonerna inom en km radie ifall de blockerade - vilket sker med 30 sekunder mellanrum på ickeblockerade zoner.

Det är viktigt att jag får synpunkter på detta innan just de funktionerna blir implementerade.

Re: Tung belastning på API

Posted: 08 Apr 2013, 12:58
by GuteLappen
Turfplates Beta hämtar 6 användare var 5:e minut.
För närvarande hämtas varje användare och plate mett en egen request, vilket blir 9 plates * 6 användare = 54 requests per 5 minuter.
Jag har påbörjat en helt annan motor, som på ett effektivare sätt hämtar datat och cachar det i en databas. Tänker även göra en enda request för alla användare.
Hur många användare kan man fråga på per request? Borde finnas någon gräns, om inte annat i längden på requeststrängen?

Re: Tung belastning på API

Posted: 08 Apr 2013, 13:51
by turdus
Länskampswidgeten (Seriespelswidgeten) hämtar inget direkt från turfs API utan går mot Serie spelssidan. http://turf.kng.se/serie/ och parsar ut info från den.

Re: Tung belastning på API

Posted: 08 Apr 2013, 17:45
by Drassen
Whiterocker: låter i grunden bra, sen får du gärna meddela om du märker att användandet skjuter i höjden.

Gutelappen: Ny motor låter toppen, en request är bättre och vi har i dagsläget ingen begränsning i antal användare. Fundera även på om det behövs var 5:e minut, räcker 10(gärna 9 eller 11 så slipper vi att alla peakar på samma minut.) eller kompromissar det dina funktioner för mycket? Jag misstänker att dina plates kommer att användas av ganska många...

Turdus: Uppfattat, vet du hur den sidan jobbar mot api?

Re: Tung belastning på API

Posted: 08 Apr 2013, 20:01
by whiterocker
Whiterocker: låter i grunden bra, sen får du gärna meddela om du märker att användandet skjuter i höjden.
Det kommer jag.

Ni borde egentligen ha API-nycklar så ni själva kan se i ert API vilket program/tjänst som eventuellt tynger ned era servrar.

Re: Tung belastning på API

Posted: 08 Apr 2013, 20:23
by affanicaffan
Turdus: Uppfattat, vet du hur den sidan jobbar mot api?
Sidan uppdateras var 10:e minut, ett tips är att fråga Knegge

Re: Tung belastning på API

Posted: 10 Apr 2013, 14:22
by HaraldTH
Jag har experimenterat med att rita en graf över ens framsteg i Turf (finns tidig prototyp här som visar mina framsteg i den innevarande omgången).

För att få underlag till grafen anropar jag i första hand http://api.turfgame.com/v3/user/(användarnamn). Jag anropar även http://api.turfgame.com/v3/zones/id:(zo ... :(zonid_n) varje gång det första anropet returnerar en eller flera zoner som inte redan är cacheade i min databas. Tidigare anropades API:et så ofta som varannan minut men jag insåg att jag fick mycket mer data än jag behöver för att rita en graf då. Nu har jag dragit ner anropsfrekvensen till var sjuttonde minut men frekvensen kan förmodligen dras ner ytterligare, jag ska låta den nuvarande frekvensen vara ett tag för att se vilken inverkan det har på presentationen av grafen.