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 tappa kontrollen och börja köra många begäranden. Begäranden gör att Azure DevOps tillämpar hastighetsbegränsningar på 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.
Gruppera dina ändringar
Att utföra enstaka åtgärder är långsamt och dyrt, vilket är den främsta orsaken till prestandaproblem och hastighetsbegränsning. Samla 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.
Anmärkning
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 exekveringstid för dina frågor under 30 sekunder för att undvika fel på grund av tröskelvärden.
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 operatorn Ever.
- Minska antalet satser som använder operatorn Contains, förutom taggar.
- Använd operatorn Contains Words när det är tillgängligt.
- Använd inte operatorn Contains för långa textfält eftersom det är dyrt.
- Undvik operatorn "<>" och negation när det är möjligt.
- Undvik att använda operatorn I grupp för stora grupper.
- Minimera antalet Or-operatorer och säkerställ att du fortfarande har övergripande omfång innan du använder.
- Undvik att använda en OR--sats mellan en i-grupp--operatorn 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 alternativet "Sökning över projekt" i frågeredigeraren längst upp till höger.
Sök över 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 dina länkar
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 sökfrågor och enskilda hämta arbetsobjekt anrop är det bästa sättet för att tillämpa hastighetsbegränsningar på din organisation. Kör inte frågor för att returnera stora listor med arbetsobjekt. Använd REST API:erna för rapporteringslänkar arbetsobjekt och arbetsobjektrevisioner istället.
Mer information finns i vårt C#-exempel på GitHub.