Metodtips för bästa integrering

Azure DevOps Services

Verktyg och integreringar mellan tjänster förbättrar effektiviteten för Azure DevOps Services. Om du inte är försiktig kan automatiserade verktyg få kontroll över att köra en hög frekvens av begäranden. Begäranden gör att Azure DevOps framtvingar hastighetsgränser för din organisation. För att minska risken för att nå hastighetsgränserna följer du dessa metodtips när du använder REST-API:erna för att integrera med Azure DevOps.

Push-överför endast åtgärdsbara arbetsobjekt

Skicka endast åtgärdsbara objekt till Azure DevOps som ditt team planerar att engagera sig i eller hantera i framtiden. Håll arbetsobjekt borta från Azure DevOps tills det behövs. Försök till exempel inte lagra telemetridata i Azure DevOps.

Underhålla ditt eget datalager

Lägg inte till arbetsobjekt i Azure DevOps för att ha alla på ett ställe. Azure DevOps Services är inte utformat som en datalagringstjänst. Underhålla ditt eget datalager.

Batcha dina ändringar

Att utföra enstaka åtgärder är långsamt och dyrt, vilket är den främsta orsaken till prestandaproblem och hastighetsbegränsning. Batch dina ändringar i ett enda anrop. Mer information finns i vår batchdokumentation och exempelkod.

Begränsa dina revisioner

Många revisioner av ett enskilt arbetsobjekt skapar uppsvälldhet och orsakar prestandaproblem. Vi rekommenderar att du utför följande uppgifter:

  • Minska dina uppdateringar genom att batchföra fältändringarna. Uppdatera inte bara ett fält i taget.
  • Om du har ändringar i flera arbetsobjekt kan du skicka ändringarna i en enda åtgärd.
  • Behåll antalet revisioner till ett minimum för att undvika revisionsgränser.

Kommentar

En ändringsgräns för arbetsobjekt på 10 000 gäller för uppdateringar som görs via REST-API:et. Den här gränsen begränsar uppdateringar från REST-API:et, men uppdateringar från webbportalen påverkas inte.

Optimera frågor

Optimera dina frågor för att returnera ett blygsamt antal resultat. Komplexa villkor och filter kan leda till långvariga frågor. Håll körningstiden för dina frågor under 30 sekunder för att undvika tröskelvärdesfel.

Tips kring frågeprestanda

  • Placera en datum- eller intervallbegränsningssats nära toppen av en fråga när det är möjligt.
  • Minska antalet satser som använder Ever-operatorn .
  • Minska antalet satser som använder Operatorn Contains , förutom Taggar.
    • Använd operatorn Contains Words när den är tillgänglig.
    • Använd inte operatorn Contains i långa textfält eftersom det är dyrt.
  • Undvik operatorerna "<>" och inte när det är möjligt.
  • Undvik att använda operatorn I grupp för stora grupper.
  • Minimera antalet operatorer eller och se till att du fortfarande har omfång på toppnivå innan du använder.
  • Undvik att använda en OR-sats mellan en operator i gruppen och områdes- eller iterationssökvägar.
  • Minska antalet övergripande satser för att uppnå ditt mål när det är möjligt.
  • Undvik att sortera på något annat än kärnfält, till exempel ID, när det är möjligt.
  • Använd ett anpassat fält i dina filter om du vill sortera efter ett anpassat fält.
  • Ange ett projekt om möjligt. Annars blir frågan begränsad till hela samlingen och kan ta betydligt längre tid än den behöver. Avmarkera "Fråga mellan projekt i det övre högra hörnet" i frågeredigeraren.

Köra frågor mot flera projekt

  • Ange vilket projekt du letar efter om frågan kräver sökning mellan projekt.
  • Använd taggar i stället för nyckelord när det är möjligt, såvida du inte söker efter partiell text i en sträng.

Hantera fel på ett smidigt sätt

Uppdateringar och frågor misslyckas när resursgränser eller användningsfrekvens överskrider gränströskeln. En fråga som körs längre än 30 sekunder returnerar till exempel följande fel:

VS402335: The timeout period (30 seconds) elapsed prior to completion of the query or the server is not responding.

När du använder REST-API:erna måste du utforma koden för att hantera fel på rätt sätt.

Begränsa antalet länkar per arbetsobjekt så mycket som möjligt för att undvika att länkgränser tillämpas.

Viktigt!

Vi planerar att framtvinga revision av arbetsobjekt och länkgränser inom en snar framtid. Dessa gränser bestäms av prestandaövervakning och kundfeedback.

Använd inte frågor för rapportering

Att använda frågor och enskilda anrop till arbetsobjekt är det bästa sättet att få hastighetsbegränsningar som tillämpas på din organisation. Kör inte frågor för att returnera stora listor med arbetsobjekt. Använd rest-API:erna för rapportering av arbetsobjekt och arbetsobjektsrevisioner i stället.

Mer information finns i vårt C#-exempel på GitHub.