Delen via


Api en terminologie van activiteitscoördinator

Om inzicht te hebben in de API van de activiteitscoördinator, is het belangrijk om vertrouwd te raken met de termen die door de API worden gebruikt.

De Activity Coordinator-API coördineert de uitvoering van uitgestelde taken, activiteiten genoemd, op een systeem. Ontwikkelaars kunnen de API gebruiken om meldingen te ontvangen over wanneer een activiteit moet worden gestart of gestopt op basis van de gewenste systeemstatus. Deze status wordt gedefinieerd door een beleid, waarin de optimale omstandigheden van systeembronnen worden beschreven tijdens het uitvoeren van een activiteit. Ontwikkelaars abonneren zich op dit beleid om meldingen te laten verzenden naar een opgegeven callback, die ze gebruiken om de uitvoering van hun activiteit te coördineren.

Notitie

Deze meldingen zijn bedoeld om taken met een lage prioriteit of resource-intensieve taken te coördineren die later kunnen worden uitgesteld. Als er een taak met hoge prioriteit moet plaatsvinden, ongeacht de systeemvoorwaarden, moet deze niet afhankelijk zijn van deze API.

API-specifieke terminologie

Hulpbron

Een resource is een fysiek onderdeel of kenmerk van het systeem dat wordt verbruikt of beïnvloed door een activiteit. Eenvoudige voorbeelden zijn traditionele systeembronnen zoals CPU, systeemschijf en GPU. Minder traditionele resources omvatten zaken als energie en niet-actieve gebruikers.

Conditie

Een voorwaarde is een kwalitatieve beschrijving van de gewenste status van een resource als goede, gemiddeldeof niet ingesteld. Op basisniveau betekent een goede staat dat het een goed moment is om een resource te gebruiken. Een gegeven resourcevoorwaardepaar kan worden geëvalueerd met behulp van verschillende dimensies.

Ontwikkelaars moeten kiezen welke voorwaarden voor afzonderlijke resources moeten worden gebruikt, zodat ze voldoen aan de behoeften van hun workload. Hierdoor kan de API het beste werk coördineren tussen de consumenten.

Uitstelbaar

uitstelbare taken zijn deze taken die niet onmiddellijk van invloed zijn op de gebruikerservaring van een toepassing, hoewel het gebrek aan uitvoering gedurende een langere periode nog steeds van invloed kan zijn op de algehele ervaring. Over het algemeen hoeven deze taken niet onmiddellijk te worden uitgevoerd en kunnen de uitvoering ervan worden uitgesteld tot een tijdstip waarop het systeem een wenselijke status heeft. Dit zijn momenten waarop het uitvoeren van de taak geen invloed heeft op de ervaring of systeemprestaties van de gebruiker. Dergelijke taken kunnen het volgende omvatten:

  • Een mediacatalogus opnieuw indexeren
  • Een aanbevelingsmodel trainen of bijwerken
  • Updates voor invoegtoepassingen installeren

Activiteit

Een activiteit is een uitstelbare werkeenheid zoals gedefinieerd door de ontwikkelaar. Activiteiten verbruiken systeembronnen inherent om uit te voeren, wat kan leiden tot gevolgen voor de gebruikerservaring. Ontwikkelaars moeten begrijpen hoe hun activiteit deze resources verbruikt, zodat ze de API op de juiste manier kunnen gebruiken. Vervolgens kunnen ze de uitvoering van activiteiten uitstellen tot een meer ideale tijd met behulp van de API, in plaats van onmiddellijk dergelijke werkzaamheden uit te voeren op tijdstippen die de gebruikerservaring aanzienlijk kunnen beïnvloeden.

Beleid

Beleidsregels definiëren wat een ideale tijd tijd om uit te voeren, door de gewenste voorwaarden te beschrijven van verschillende resources die nodig zijn om te worden uitgevoerd of beïnvloed door de activiteit van de ontwikkelaar. Een beleid wordt gevormd door verschillende paren resources en voorwaarden, waarmee afzonderlijke resourcevoorwaardenworden gedefinieerd.

Een beleid kan voorwaarden opgeven voor resources zoals Power, Geheugen en CPU, maar ook resources zoals GPU uitsluiten op basis van hun relevantie. Een beleid wordt beschouwd als open wanneer aan alle resourcevoorwaarden wordt voldaan en anders gesloten. Beleidsregels beschrijven niet hoeveel van een bepaalde resource een activiteit verwacht te verbruiken. De API maakt gebruik van beleidsconfiguraties om coördinatiebeslissingen te nemen tussen API-consumenten.

Wanneer u een beleid configureert, wordt aanbevolen dat de ontwikkelaar begint met de beste voorwaarde (goede) voor elke resource, zodat de API hen kan helpen bij het uitvoeren op de beste momenten, wanneer de uitvoering het minst waarschijnlijk van invloed is op de ervaring of systeemprestaties van de gebruiker. Voorwaarden kunnen achteraf worden verlaagd (bijvoorbeeld van goede tot medium) als de activiteit niet regelmatig genoeg of lang genoeg wordt uitgevoerd om aan de behoeften van de ontwikkelaar te voldoen.

Abonnement

Abonnementen vormen het coördinatiemechanisme voor activiteiten. Ontwikkelaars abonneren zich op een beleid met een callback, die door de API-aanroepen met coördinatiemeldingen worden aangeroepen. Deze meldingen informeren de ontwikkelaar wanneer ze hun activiteit moeten starten/hervatten of stoppen/onderbreken. Meldingen zijn gebaseerd op de resourcevoorwaarden van het geabonneerde beleid, zoals geconfigureerd op het moment van het abonnement en coördinatiebeslissingen van de API.

Beleidssjabloon

Lid van het enum ACTIVITY_COORDINATOR_POLICY_TEMPLATE. Deze kunnen worden gebruikt bij het maken van een beleid om het vooraf te configureren met redelijke voorwaarden die zijn ontworpen om te voldoen aan de algemene behoeften van de meeste activiteiten en de impact op de gebruiker te minimaliseren.

Downgrade

U kunt downgraden een beleid of resource door over te schakelen van betere naar minder voorwaarden, zodat deze meer permissief zijn en de kans vergroten dat aan de voorwaarden van het beleid wordt voldaan. U kunt bijvoorbeeld een goede voorwaarde voor CPU- downgraden door deze te wijzigen in een gemiddelde voorwaarde. Een gemiddelde voorwaarde heeft minder beperkende vereisten en is daarom waarschijnlijker. Op beleidsniveau verhoogt dit de kans dat het beleid wordt geopend (alle resourcevoorwaarden worden vaker uitgevoerd) en gedurende langere tijd, rekening houdend met het feit dat dit situaties kunnen zijn wanneer er een grotere kans is op het veroorzaken van gevolgen van gebruikers of het verlagen van de systeemprestaties.

Beschikbare acties

Met de API kan de ontwikkelaar de volgende acties uitvoeren:

  • Een beleid configureren.
  • Abonneren/afmelden op meldingen voor beleid.

De API biedt de flexibiliteit om beleidsregels aan te passen aan het scenario voor ontwikkelaars, te beginnen met een lege beleidsconfiguratie of een van de sjabloonconfiguraties die gericht zijn op de behoeften van de meeste apps. In het eenvoudigste geval:

  • Een beleid toewijzen met behulp van een sjabloonbeleid-id binnen ACTIVITY_COORDINATOR_POLICY_TEMPLATE.

Voor een meer aangepast ontwikkelaarsscenario,

  • Een sjabloonbeleid toewijzen (mogelijk een leeg beleid).
  • Stel de gewenste voorwaarden in voor de relevante resources.

Overzicht van Activity Coordinator-API

het juiste beleid voor activiteitencoördinator kiezen

voorbeeldproject activiteitscoördinator