Najlepsze rozwiązania dotyczące integracji
Azure DevOps Services
Narzędzia i integracje między usługami zwiększają wydajność usług Azure DevOps Services. Jeśli nie jesteś ostrożny, zautomatyzowane narzędzia mogą wymknąć się spod kontroli, wykonując dużą liczbę żądań. Żądania powodują, że usługa Azure DevOps wymusza limity szybkości w organizacji. Aby zmniejszyć ryzyko osiągnięcia limitów szybkości, postępuj zgodnie z tymi najlepszymi rozwiązaniami, gdy używasz interfejsów API REST do integracji z usługą Azure DevOps.
Wypychanie tylko wykonalnych elementów roboczych
Wypychanie elementów do realizacji do usługi Azure DevOps, którymi zespół planuje się zająć lub nad którymi zamierza pracować w przyszłości. Trzymaj elementy robocze z dala od Azure DevOps, dopóki nie będzie to konieczne. Na przykład nie należy próbować przechowywać danych telemetrycznych w usłudze Azure DevOps.
Obsługa własnego magazynu danych
Nie dodawaj elementów roboczych do usługi Azure DevOps, aby mieć je wszystkie w jednym miejscu. Usługa Azure DevOps Services nie jest zaprojektowana jako usługa magazynu danych. Obsługa własnego magazynu danych.
Wsadowe zmiany
Wykonywanie pojedynczych operacji jest powolne i kosztowne, co jest główną przyczyną problemów z wydajnością i ograniczaniem szybkości. Zgrupuj swoje zmiany w jednym wywołaniu. Aby uzyskać więcej informacji, zobacz dokumentację Batch i przykładowy kod.
Ogranicz poprawki
Wiele poprawek w elemencie roboczym powoduje nadmiar i problemy z wydajnością. Zalecamy wykonywanie następujących zadań:
- Zmniejsz liczbę aktualizacji, grupując zmiany pól. Nie aktualizuj tylko jednego pola jednocześnie.
- Jeśli masz zmiany w wielu elementach roboczych, należy podzielić te zmiany na jedną akcję.
- Zachowaj minimalną liczbę poprawek, aby uniknąć limitów poprawek.
Uwaga
Limit poprawki elementu roboczego wynosi 10 000 dla aktualizacji wprowadzonych za pośrednictwem interfejsu API REST. Ten limit ogranicza aktualizacje z interfejsu API REST, ale nie ma to wpływu na aktualizacje z portalu internetowego.
Optymalizowanie zapytań
Zoptymalizuj zapytania, aby zwrócić niewielką liczbę wyników. Złożone warunki i filtry mogą prowadzić do długotrwałych zapytań. Zachowaj czas wykonywania zapytań poniżej 30 sekund, aby uniknąć błędów progowych.
Wskazówki dotyczące wydajności zapytań
- Umieść klauzulę daty lub zakresu w górnej części zapytania, jeśli jest to możliwe.
- Zmniejsz liczbę klauzul używających operatora Ever .
- Zmniejsz liczbę klauzul używających operatora Contains , z wyjątkiem tagów.
- Użyj operatora Contains Words , jeśli jest dostępny.
- Nie używaj operatora Contains w długich polach tekstowych, ponieważ jest to kosztowne.
- Unikaj operatorów "<>" i "not", jeśli to możliwe.
- Unikaj używania operatora W grupie dla dużych grup.
- Ogranicz liczbę operatorów Or i upewnij się, że nadal masz zakres najwyższego poziomu przed użyciem.
- Unikaj używania klauzuli OR między operatorem W grupie a Ścieżkami Obszaru lub Iteracji.
- Zmniejsz liczbę ogólnych klauzul, aby osiągnąć cel, gdy jest to możliwe.
- Unikaj sortowania elementów innych niż podstawowe pola, takich jak identyfikator, jeśli jest to możliwe.
- Użyj pola niestandardowego w filtrach, jeśli chcesz sortować według pola niestandardowego.
- Określ projekt, jeśli to możliwe. W przeciwnym razie zapytanie zostanie ograniczone do całej kolekcji i może trwać znacznie dłużej niż musi. Odznacz opcję "Zapytanie między projektami" w prawym górnym rogu edytora zapytań.
Wykonywanie zapytań między projektami
- Określ projekt, którego szukasz, jeśli zapytanie wymaga wyszukiwania w projektach.
- Jeśli to możliwe, użyj tagów zamiast słów kluczowych , chyba że szukasz częściowego tekstu ciągu.
Radzenie sobie z niepowodzeniami w sposób sprawny
Aktualizacje i zapytania kończą się niepowodzeniem, gdy limity zasobów lub częstotliwość wykorzystania przekraczają próg limitu. Na przykład zapytanie, które działa dłużej niż 30 sekund, zwraca następujący błąd:
VS402335: The timeout period (30 seconds) elapsed prior to completion of the query or the server is not responding.
Jeśli korzystasz z interfejsów API REST, upewnij się, że projektujesz swój kod tak, aby odpowiednio obsługiwał błędy.
Ogranicz łącza
Aby uniknąć wymuszania limitów linków, należy jak to możliwe ograniczyć liczbę łączy na element roboczy.
Ważne
Planujemy w najbliższej przyszłości wymusić poprawki i limity linków elementów roboczych. Te limity są określane przez monitorowanie wydajności i opinie klientów.
Nie używaj zapytań do raportowania
Używanie zapytań i indywidualnych wywołań metody get work item to najlepszy sposób na egzekwowanie limitów szybkości w organizacji. Nie wykonuj zapytań, aby zwrócić obszerne listy elementów roboczych. Zamiast tego użyj interfejsów API REST do linków elementów roboczych i poprawek elementów roboczych.
Aby uzyskać więcej informacji, zobacz nasz przykład języka C# w witrynie GitHub.