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ówzamiast 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.

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.