Compartir a través de


API y terminología del coordinador de actividades

Para comprender la API del coordinador de actividades, es importante familiarizarse con los términos usados por la API.

La API del coordinador de actividades coordina la ejecución de tareas aplazables, denominadas actividades, en un sistema. Los desarrolladores pueden usar la API para obtener notificaciones de cuándo iniciar o detener una actividad en función de un estado del sistema deseado. Este estado se define mediante una directiva, que describe las condiciones óptimas de los recursos del sistema mientras se ejecuta una actividad. Los desarrolladores se suscriben a estas directivas para que las notificaciones se envíen a una devolución de llamada proporcionada, que usan para coordinar la ejecución de su actividad.

Nota

Estas notificaciones son para coordinar tareas de prioridad baja o de uso intensivo de recursos que se pueden aplazar a más adelante. Si hay una tarea de prioridad alta que debe producirse independientemente de las condiciones del sistema, no debe basarse en esta API.

Terminología específica de la API

Recurso

Un recurso es un componente físico o atributo del sistema que se consume o se ve afectado por una actividad. Algunos ejemplos sencillos son recursos tradicionales del sistema, como CPU, disco del sistema y GPU. Entre los recursos menos tradicionales se incluyen elementos como energía y inactividad del usuario.

Condición

Una condición es una descripción cualitativa del estado deseado de un recurso como buen, medioo no establecido. En un nivel básico, una buena condición significa que es un buen momento usar un recurso. Un par de condición de recurso determinado se puede evaluar mediante una variedad de dimensiones.

Los desarrolladores deben elegir qué condiciones usar para los recursos individuales, por lo que se ajustarán a las necesidades de su carga de trabajo. Esto permite a la API coordinar mejor el trabajo entre sus consumidores.

Aplazable

tareas aplazables son aquellas tareas que no afectan inmediatamente a la experiencia del usuario de una aplicación, aunque la falta de ejecución durante un período prolongado puede seguir afectando a la experiencia general. En general, estas tareas no necesitan ejecutarse inmediatamente y pueden aplazar su ejecución a una hora en que el sistema está en un estado deseable. Estos son momentos en los que la ejecución de la tarea no interfiere con la experiencia del usuario o el rendimiento del sistema. Estas tareas podrían incluir:

  • Volver a indexar un catálogo multimedia
  • Entrenamiento o actualización de un modelo de recomendación
  • Instalación de actualizaciones de complementos

Actividad

Una de actividad de es una unidad de trabajo aplazable definida por el desarrollador. Las actividades consumen inherentemente recursos del sistema para ejecutar, lo que puede dar lugar a un impacto en la experiencia del usuario. Los desarrolladores deben comprender cómo consume su actividad estos recursos para que puedan usar correctamente la API. Después, pueden aplazar la ejecución de la actividad a un tiempo más ideal mediante la API, en lugar de ejecutar inmediatamente este trabajo en momentos que pueden afectar significativamente a la experiencia del usuario.

Política

Las directivas definen qué tiempo ideal tiempo de ejecución mediante la descripción de las condiciones deseadas de varios recursos necesarios para ejecutar o verse afectados por la actividad del desarrollador. Una directiva está formada por varios pares de recursos y condiciones, definiendo condiciones de recursos individuales .

Una directiva puede especificar condiciones para recursos como Power, Memory y CPU, pero también excluir recursos como GPU en función de su relevancia. Una directiva se considera abiertas cuando se cumplen todas las condiciones de recursos y cerradas de lo contrario. Las directivas no describen la cantidad de un recurso determinado que se espera que consuma una actividad. La API usa configuraciones de directiva para tomar decisiones de coordinación entre consumidores de API.

Al configurar una directiva, se recomienda que el desarrollador comience con la mejor condición (buena) para cada recurso para que la API pueda ayudarles a ejecutarse en los mejores momentos, cuando la ejecución es menos probable que afecte a la experiencia del usuario o al rendimiento del sistema. Las condiciones se pueden reducir (por ejemplo, de buena a medio) después si la actividad no se notifica que se ejecute con frecuencia o tiempo suficiente para satisfacer las necesidades del desarrollador.

Suscripción

Las suscripciones son el mecanismo de coordinación para las actividades. Los desarrolladores se suscriben a una directiva con una devolución de llamada, que la API llama con notificaciones de coordinación. Estas notificaciones informan al desarrollador cuando deben iniciar, reanudar o detener o pausar su actividad. Las notificaciones se basan en las condiciones de recursos de la directiva suscrita, tal como se configura en el momento de la suscripción y las decisiones de coordinación tomadas por la API.

Plantilla de directiva

Miembro de la enumeración ACTIVITY_COORDINATOR_POLICY_TEMPLATE. Se pueden usar al crear una directiva para configurarla previamente con condiciones razonables diseñadas para satisfacer las necesidades comunes de la mayoría de las actividades y minimizar el impacto al usuario.

Degradar

Puede degradación una directiva o un recurso cambiando de mejor a menos condiciones para que sea más permisiva y aumente la probabilidad de que se cumplan las condiciones de la directiva. Por ejemplo, puede degradar una condición de buena para de CPU cambiando a una condición de medio. Una condición media tiene requisitos menos restrictivos y, por tanto, es más probable que se cumpla. En el nivel de directiva, esto aumenta la probabilidad de que la directiva se abra (se cumplen todas las condiciones de recursos) con más frecuencia y durante períodos de tiempo más largos, teniendo en cuenta que estas pueden ser ocasiones en las que hay mayor probabilidad de causar un impacto del usuario o degradar el rendimiento del sistema.

Acciones disponibles

La API permite al desarrollador realizar las siguientes acciones:

  • Configurar una directiva.
  • Suscríbase o cancele la suscripción a las notificaciones de las directivas.

La API proporciona la flexibilidad de personalizar las directivas para adaptarse mejor al escenario de desarrollador, empezando por una configuración de directiva vacía o por una de las configuraciones de plantilla que tienen como destino las necesidades de la mayoría de las aplicaciones. En el caso más sencillo:

  • Asigne una directiva mediante un identificador de directiva de plantilla dentro de ACTIVITY_COORDINATOR_POLICY_TEMPLATE.

Para un escenario de desarrollador más personalizado,

  • Asigne una directiva de plantilla (posiblemente una vacía).
  • Establezca las condiciones deseadas para los recursos pertinentes.

Información general de la API del coordinador de actividades de

Elegir la directiva de coordinador de actividades adecuada

proyecto de ejemplo coordinador de actividades