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ą wydostać się z kontroli wykonującej wysoką 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 elementów roboczych z możliwością działania
Wypychanie elementów z możliwością działania do usługi Azure DevOps, które zespół planuje zaangażować lub rozwiązać w przyszłości. Do czasu konieczności zachowaj elementy robocze poza usługą Azure DevOps. 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. Wsaduj zmiany do jednego wywołania. Aby uzyskać więcej informacji, zobacz dokumentację usługi Batch i przykładowy kod.
Ogranicz poprawki
Wiele poprawek w jednym elemencie roboczym tworzy wzdęcie i powoduje problemy z wydajnością. Zalecamy wykonywanie następujących zadań:
- Zmniejsz liczbę aktualizacji, wsadują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 nie, jeśli to możliwe.
- Unikaj używania operatora W grupie dla dużych grup.
- Zminimalizuj liczbę operatorów Or i upewnij się, że masz zakres najwyższego poziomu przed użyciem.
- Unikaj używania klauzuli OR między operatorem grupy i ś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. Usuń zaznaczenie pola wyboru "Zapytanie między projektami w prawym górnym rogu" edytora zapytań.
Zapytanie dotyczące różnych projektów
- 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.
Obsługa niepowodzeń w sposób bezproblemowy
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 kod jest odpowiednio obsługiwany w celu obsługi błędów.
Ogranicz łącza
Aby uniknąć wymuszania limitów linków, należy ograniczyć liczbę łączy na element roboczy, jak najwięcej.
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
Korzystanie z zapytań i indywidualnych wywołań elementów roboczych jest najlepszym sposobem uzyskania limitów szybkości wymuszanych w organizacji. Nie wykonuj zapytań w celu zwrócenia dużych list elementów roboczych. Zamiast tego użyj linków elementów roboczych raportowania i poprawek elementów roboczych interfejsów API REST.
Aby uzyskać więcej informacji, zobacz nasz przykład języka C# w witrynie GitHub.