Tung belastning på API

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

Re: Tung belastning på API

Post by affanicaffan »

HaraldTH wrote: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

Post by jagduvi »

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: 2425
Joined: 04 Aug 2010 11:46

Re: Tung belastning på API

Post by Drassen »

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: 2046
Joined: 29 Dec 2011 00:56
Country: Sweden

Re: Tung belastning på API

Post by SunYour »

...ö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

Post by jagduvi »

SunYour wrote:...ö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

Post by AJ_ »

Drassen wrote: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

Post by GuteLappen »

AJ_ wrote: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

Post by HaraldTH »

affanicaffan wrote: 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

Post by AJ_ »

GuteLappen wrote:
AJ_ wrote: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

Post by jagduvi »

AJ_ wrote:
GuteLappen wrote:
AJ_ wrote: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/
Post Reply

Return to “Tredje Part”