Tung belastning på API

affanicaffan
Posts: 605
Joined: 16 Nov 2012, 00:27
Country: Sweden
Location: Umeå

Re: Tung belastning på API

Postby affanicaffan » 10 Apr 2013, 23:03

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.
Vilken linje visar vad? tycker det verkar jättespännande
I'M BACK!!! :D Åtminstone tills knät strejkar igen (augusti 2017) ;)

jagduvi
Posts: 174
Joined: 13 Jun 2012, 14:20
Country: Sweden

Re: Tung belastning på API

Postby jagduvi » 11 Apr 2013, 16:07

Chip

TurfNotify hämtar anropar api:et varje 120000 ms (2m). och det som hämtas då är http://api.turfgame.com/v3/rss?count=100, alltså de senaste 100 tagna zonerna. Dessa lagrar jag sedan i min database så jag kan se vem som tog och vem som förlorade en zone. Detta görs bara en gång oavsett om det är en eller tusentals (hybris) som använder appen.

Sedan så anropar jag oxå varje gång någon användare går in på appen. Då hämtar jag info om alla användare som de har i sin lista.

Hoppas att det är ok, Jag kan dra ner lite på det hela genom att polla mer sällan än varje 2:e minut. Vet ej hur många zoner det tas i minuten, men om det är mer än 50 stycken så kommer jag missa att någon tagit och tappar zoner om jag höjer tiden.

/J
Turf Divisions - Spela Turf i seriespel. http://turfdivisions.se/

User avatar
Drassen
Site Admin
Posts: 2412
Joined: 04 Aug 2010, 11:46

Re: Tung belastning på API

Postby Drassen » 11 Apr 2013, 20:30

Då har vi gjort ett litet förslag på förbättring ang. takeovers:
api.turfgame.com/unstable/takeovers/2013-04-11 18:25:00

man kan alltså plocka takeovers från en viss tidpunkt och slipper därmed titta hela tiden. I svaret ingår ett timestamp när svaret skapades, så kan man fråga från det datumet nästa gång.

Kom gärna med feedback.

Max svar är 500st
--No Private Messages please, use contact@turfgame.com instead.--

User avatar
SunYour
Zone General
Posts: 2063
Joined: 29 Dec 2011, 00:56
Country: Sweden

Re: Tung belastning på API

Postby SunYour » 11 Apr 2013, 20:33

...öppnar ju upp för att man kan specialstudera vem som helst i spelet långt tillbaks i tiden...
Mobile: Samsung S7| Location: Västerås / Stockholm

jagduvi
Posts: 174
Joined: 13 Jun 2012, 14:20
Country: Sweden

Re: Tung belastning på API

Postby jagduvi » 11 Apr 2013, 20:46

...öppnar ju upp för att man kan specialstudera vem som helst i spelet långt tillbaks i tiden...
Har man ju kunnat länge, alltså lagra undan vilka som tagit vilka zoner i sin egna databas vilket jag gör. Fast jag tömmer den då och då för jag har inget intresse för att spara allt.

Men om man bara får tillbaka 500 träffar så blir det ganska många frågor mot databasen för att få ut långt tillbaka i tiden, så jag tycker inte att det gör något för man kan ju få tag på info enda om man vill ha från nu och långt fram i tiden tgenom att lagra undan själv.

Ska testa att anropa detta api i stället för det jag har nu. Då kan jag köra var tionde minut inställt för varannan.

/j
Turf Divisions - Spela Turf i seriespel. http://turfdivisions.se/

User avatar
AJ_
Posts: 122
Joined: 27 Feb 2012, 20:32
Country: Sweden
Location: Linköping

Re: Tung belastning på API

Postby AJ_ » 11 Apr 2013, 21:33

Då har vi gjort ett litet förslag på förbättring ang. takeovers:
api.turfgame.com/unstable/takeovers/2013-04-11 18:25:00

man kan alltså plocka takeovers från en viss tidpunkt och slipper därmed titta hela tiden. I svaret ingår ett timestamp när svaret skapades, så kan man fråga från det datumet nästa gång.

Kom gärna med feedback.

Max svar är 500st
Jag föreslår att tidstämplar i stället skrivs enligt ISO 8601 standard med "T" i stället för mellanslag:
http://api.turfgame.com/unstable/takeov ... 1T18:25:00
Så slipper vi tänka på URL-kodning. Ser att länken redan fungerar, så det är bara utdatat som behöver justeras. (Det samma borde gälla hur övriga API:er levererar tidsstämplar)

Sedan anser jag att attribut och taggar i XML ska skrivas med bindesträck (-) i stället för understräck (_), men det är en stil ni verkar ha i alla API:er så det kanske inte bör ändras.

Det är problem med content-type headern. Den är bara rätt (text/xml; charset="utf-8") en gång per minut vid upprepade laddningar av samma sida, övriga laddningar ger "text/html". Jag gissar att ni har en cache på en minut någonstans, det tyder också datat som levereras på. :-)

Den kanske viktigaste frågan är hur kombinationen tidstämpel med sekundupplösning i to_date och gränsen på 500 takes hanteras? Om fler takes sker under samma sekund, kan man då få samma take fler gånger eller tappa bort vissa takes?
TurfWidget
Image
Mobil: Nexus 5X | Stad: Linköping

User avatar
GuteLappen
Posts: 328
Joined: 23 Sep 2012, 10:13
Country: Sweden
Location: Gotland, Sweden
Contact:

Re: Tung belastning på API

Postby GuteLappen » 12 Apr 2013, 07:29

Om fler takes sker under samma sekund, kan man då få samma take fler gånger eller tappa bort vissa takes?
Samma zon kan väl inte tas flera gånger samma tid, eftersom TO tiden är ca 30 sekunder.
Du kanske inte menar så, men när det sker flera TO samma sekund så tas väl alla TO med som har den TO tiden, så du lär få med samma svar i överlappet om du frågar på samma sluttid som ditt senaste sista svaret du fick.
Lösningen kan vara att lägga på en sekund på din nästa fråga på ditt senaste sista posten.
Oj vad konstig svenska det blev, hoppas ni fattar vad jag menar...

HaraldTH
Posts: 4
Joined: 10 Apr 2013, 13:42
Country: Sweden

Re: Tung belastning på API

Postby HaraldTH » 12 Apr 2013, 08:03

Vilken linje visar vad? tycker det verkar jättespännande
Den svarta visar mina poäng, den blå visar hur många poäng jag behöver ta i snitt för att nå mitt mål för omgången, den röda visar min placering i topplistan och den gröna visar PPH.

User avatar
AJ_
Posts: 122
Joined: 27 Feb 2012, 20:32
Country: Sweden
Location: Linköping

Re: Tung belastning på API

Postby AJ_ » 12 Apr 2013, 08:35

Om fler takes sker under samma sekund, kan man då få samma take fler gånger eller tappa bort vissa takes?
... men när det sker flera TO samma sekund så tas väl alla TO med som har den TO tiden, så du lär få med samma svar i överlappet om du frågar på samma sluttid som ditt senaste sista svaret du fick.
Lösningen kan vara att lägga på en sekund på din nästa fråga på ditt senaste sista posten.
Det är just det som är frågan. Tas flera zoner under samma sekund i slutet av intervallet riskerar man att inte få med takes om man lägger på en sekund i nästa fråga om gränsen på 500 är konstant.
Jag skulle hellre sett ett id av något slag för att hantera "sidbrytningar".
TurfWidget
Image
Mobil: Nexus 5X | Stad: Linköping

jagduvi
Posts: 174
Joined: 13 Jun 2012, 14:20
Country: Sweden

Re: Sv: Tung belastning på API

Postby jagduvi » 12 Apr 2013, 09:33

Om fler takes sker under samma sekund, kan man då få samma take fler gånger eller tappa bort vissa takes?
... men när det sker flera TO samma sekund så tas väl alla TO med som har den TO tiden, så du lär få med samma svar i överlappet om du frågar på samma sluttid som ditt senaste sista svaret du fick.
Lösningen kan vara att lägga på en sekund på din nästa fråga på ditt senaste sista posten.
Det är just det som är frågan. Tas flera zoner under samma sekund i slutet av intervallet riskerar man att inte få med takes om man lägger på en sekund i nästa fråga om gränsen på 500 är konstant.
Jag skulle hellre sett ett id av något slag för att hantera "sidbrytningar".
För min del är det bara att överlappa med någon minut, det är ju så jag gör just nu. Jag får flertalet zoner som jag redan har lagrat men det sorterar jag bort på min sida.

Vad är det du vill ha api:et till?, nyfiken.

Skickat från min ZTE-BLADE via Tapatalk 2
Turf Divisions - Spela Turf i seriespel. http://turfdivisions.se/


Return to “Tredje Part”

Who is online

Users browsing this forum: No registered users and 1 guest