Udostępnij za pośrednictwem


Interfejs API i terminologia koordynatora działań

Aby zrozumieć interfejs API koordynatora działań, ważne jest zapoznanie się z terminami używanymi przez interfejs API.

Interfejs API koordynatora działań koordynuje wykonywanie zadań możliwych do odroczenia, nazywanych działaniami, w systemie. Deweloperzy mogą używać interfejsu API do otrzymywania powiadomień o tym, kiedy należy uruchomić lub zatrzymać działanie na podstawie żądanego stanu systemu. Ten stan jest definiowany przez zasady, które opisują optymalne warunki zasobów systemowych podczas uruchamiania działania. Deweloperzy subskrybują te zasady, aby otrzymywać powiadomienia wysyłane do dostarczonego wywołania zwrotnego, których używają do koordynowania wykonywania działania.

Nuta

Te powiadomienia służą do koordynowania zadań o niskim priorytcie lub intensywnie korzystających z zasobów, które można odroczyć do późniejszego czasu. Jeśli istnieje zadanie o wysokim priorytcie, które musi nastąpić niezależnie od warunków systemowych, nie powinno polegać na tym interfejsie API.

Terminologia specyficzna dla interfejsu API

Zasób

Zasób jest fizycznym składnikiem lub atrybutem systemu, który jest używany lub ma wpływ na działanie. Proste przykłady to tradycyjne zasoby systemowe, takie jak procesor CPU, dysk systemowy i procesor GPU. Mniej tradycyjne zasoby obejmują takie elementy jak moc i bezczynność użytkownika.

Warunek

Warunek to jakościowy opis żądanego stanu zasobu jako dobry, średnilub nie ustawiono. Na poziomie podstawowym dobry stan oznacza, że jest to dobry czas do użycia zasobu. Dana para warunków zasobów może być oceniana przy użyciu różnych wymiarów.

Deweloperzy muszą wybrać warunki, które mają być używane dla poszczególnych zasobów, aby odpowiadały potrzebom swojego obciążenia. Dzięki temu interfejs API może najlepiej koordynować pracę wśród użytkowników.

Deferrable

zadania z możliwością odroczenia to zadania, które nie mają natychmiastowego wpływu na środowisko użytkownika aplikacji, chociaż brak wykonywania w dłuższym okresie może nadal mieć wpływ na ogólne środowisko pracy. Ogólnie rzecz biorąc, te zadania nie muszą być uruchamiane natychmiast i mogą odroczyć ich wykonywanie do czasu, gdy system jest w pożądanym stanie. Są to czasy, w których uruchomienie zadania nie zakłóca działania środowiska użytkownika ani wydajności systemu. Takie zadania mogą obejmować:

  • Ponowne indeksowanie wykazu multimediów
  • Trenowanie lub aktualizowanie modelu rekomendacji
  • Instalowanie aktualizacji wtyczki

Aktywność

Działanie to jednostka , którą można odroczyć zgodnie z definicją dewelopera. Działania z natury zużywają zasoby systemowe do wykonania, co może spowodować wpływ na środowisko użytkownika. Deweloperzy muszą zrozumieć, w jaki sposób ich działanie zużywa te zasoby, aby mogli odpowiednio korzystać z interfejsu API. Następnie mogą odroczyć wykonywanie działań do bardziej idealnego czasu przy użyciu interfejsu API, a nie natychmiast wykonać taką pracę w czasie, co może znacząco wpłynąć na środowisko użytkownika.

Polityka

Zasady określają, co idealny czas czas do uruchomienia, opisując żądane warunki różnych zasobów wymaganych do uruchomienia lub wpływu działania dewelopera. Zasady są tworzone przez kilka par zasobów i warunków, definiując poszczególne warunki zasobów.

Zasady mogą określać warunki dla zasobów, takich jak moc, pamięć i procesor CPU, ale także wykluczać zasoby, takie jak procesor GPU, na podstawie ich istotności. Zasady są uznawane za otwarte, gdy zostaną spełnione wszystkie warunki zasobów i zamknięte w przeciwnym razie. Zasady nie opisują, ile z danego zasobu ma zużywać działanie. Interfejs API używa konfiguracji zasad do podejmowania decyzji dotyczących koordynacji między użytkownikami interfejsu API.

Podczas konfigurowania zasad zaleca się, aby deweloper rozpoczynał się od najlepszego (dobrego) warunku dla każdego zasobu, aby interfejs API mógł pomóc im działać w najlepszych momentach, gdy wykonanie jest najmniej prawdopodobne, aby wpłynąć na wydajność środowiska użytkownika lub systemu. Warunki mogą zostać obniżone (np. z dobre do średniej) później, jeśli działanie zostanie powiadomione, aby uruchomić wystarczająco często lub wystarczająco długo, aby spełnić potrzeby dewelopera.

Subskrypcja

Subskrypcje to mechanizm koordynacji działań. Deweloperzy subskrybują zasady za pomocą wywołania zwrotnego, który interfejs API wywołuje z powiadomieniami koordynacji. Powiadomienia te informują dewelopera, kiedy powinni uruchomić/wznowić lub zatrzymać/wstrzymać działanie. Powiadomienia są oparte na warunkach zasobów subskrybowanych zasad zgodnie z konfiguracją w czasie subskrypcji i decyzjach dotyczących koordynacji podejmowanych przez interfejs API.

Szablon zasad

Element członkowski wyliczenia ACTIVITY_COORDINATOR_POLICY_TEMPLATE. Mogą one być używane podczas tworzenia zasad w celu wstępnego skonfigurowania go z rozsądnymi warunkami zaprojektowanymi w celu spełnienia typowych potrzeb większości działań i zminimalizowania wpływu na użytkownika.

Downgrade

Można obniżyć zasady lub zasób, zmieniając się z lepszych na mniejsze warunki, aby uczynić go bardziej permissywnym i zwiększyć prawdopodobieństwo spełnienia warunków zasad. Na przykład można obniżyć dobry warunek dla procesora CPU, zmieniając go na średni warunek. Średni warunek ma mniej restrykcyjne wymagania i dlatego jest bardziej prawdopodobny. Na poziomie zasad zwiększa to prawdopodobieństwo, że zasady będą otwierane (wszystkie warunki zasobów są spełnione) częściej i przez dłuższy czas, pamiętając, że mogą to być czasy, gdy istnieje większe prawdopodobieństwo spowodowania wpływu użytkownika lub obniżenia wydajności systemu.

Dostępne akcje

Interfejs API umożliwia deweloperowi wykonywanie następujących akcji:

  • Konfigurowanie zasad.
  • Subskrybuj/anuluj subskrypcję powiadomień dotyczących zasad.

Interfejs API zapewnia elastyczność dostosowywania zasad w celu najlepszego dopasowania do scenariusza dewelopera, począwszy od pustej konfiguracji zasad lub jednej z konfiguracji szablonów, które są przeznaczone dla większości aplikacji. W najprostszym przypadku:

  • Przydziel zasady przy użyciu identyfikatora zasad szablonu w ACTIVITY_COORDINATOR_POLICY_TEMPLATE.

W przypadku bardziej niestandardowego scenariusza dla deweloperów,

  • Przydziel zasady szablonu (potencjalnie puste).
  • Ustaw żądane warunki dla odpowiednich zasobów.

Omówienie interfejsu API koordynatora działań

Wybieranie odpowiednich zasad koordynatora działań

przykładowy projekt koordynatora działań