Programa trabajos de monetización

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Descripción general de los trabajos programados

La monetización proporciona un programador de trabajos y un conjunto de trabajos que están programados previamente para ejecutarse en momentos designados.

En la siguiente tabla, se enumeran los trabajos preprogramados que proporciona la monetización y las horas en las que están programadas para ejecutarse (todos los horarios están expresados en UTC). También se enumera el activador para cada trabajo.

Job Descripción Programa (UTC) Activador
Tasa impositiva mensual del desarrollador Recupera la tasa impositiva del motor de impuestos de cada desarrollador y actualiza la entidad del desarrollador con la tasa fiscal revisada. El primer día de cada mes a las 5:45 a.m. MINT.MONTHLY_DEV_TAXRATE@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Renovar suscripción Se aplican tarifas recurrentes a los planes de tarifas activos o tarifas nuevas a los planes de tarifas futuros que comienzan el día actual. Todos los días a los 5 segundos después de la medianoche MINT.RENEW_SUBSCRIPTIONS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Actualizador de XeFeed Obtiene el tipo de cambio en dólares estadounidenses para cada moneda admitida. Todos los días a 1 segundo después de la medianoche MINT.XEFEED@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Renovar el plan de tarifas para desarrolladores Aplica las fechas de renovación de un plan de tarifas y calcula las tarifas por rescisión anticipada. Todos los días a las 2:20 a.m. MINT.RENEW_DEV_RATEPLAN@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Reintentar retransmisión de transacciones Nota: Este trabajo dejó de estar disponible y no tiene impacto en la monetización. Todos los días a las 4:30 a.m. MINT.RETRY_TX_RELAY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Limpiador de transacciones Nota: Este trabajo dejó de estar disponible y no tiene impacto en la monetización. Todos los días a las 5:30 a.m. MINT.TX_CLEANSER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Auditoría de saldo de desarrolladores Audita el saldo de la cuenta de desarrollador. Copia el uso actual y el límite del saldo prepagado o de crédito de pospago en una tabla de auditoría. Luego, deduce el uso actual de la cuenta de desarrollador y muestra el saldo de uso en cero. El primer día de cada mes, 5 segundos después de la medianoche MINT.DEVELOPER_BALANCE_AUDIT@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Documentos de facturación mensual Genera documentos de facturación.

Nota: Apigee ya no admite la generación de documentos de facturación desde la monetización de Apigee Edge. Consulta Jubilaciones.

El día 11 de cada mes a un minuto después de la medianoche MINT.MONTLY_BILLING_DOCS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Contador del plan de tarifas para desarrolladores Nota: Este trabajo dejó de estar disponible y no tiene impacto en la monetización. Todos los días a los 3 segundos después de la medianoche MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Cargos diarios Vuelve a calcular todos los totales de transacciones por hora y los usa para calcular los totales diarios del día anterior. Todos los días a la 1:20 a.m. MINT.CHARGE_DAILY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Cargos por hora Calcula todos los totales de las transacciones de cada cuarto de una hora. Un minuto después de cada cuarto de hora MINT.CHARGE_HOURLY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Actualizar configuración de notificaciones Vuelve a indexar todas las condiciones de notificación. Cada 5 minutos MINT.REFRESH_NOTIFICATION_CONFIG@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Enviar notificaciones por correo electrónico Envía notificaciones acumuladas por correo electrónico Cada 1 hora MINT.EMAIL_NOTIFICATION@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Actualizar límite Nota: Este trabajo dejó de estar disponible y no tiene impacto en la monetización. N/A (nunca se ejecuta) MINT.REFRESH_LIMIT@@@
message-processor@@@SYSTEM@@@
message-processor@@@SYSTEM

Además de los trabajos enumerados con anterioridad, hay trabajos que puedes habilitar a través de notificaciones de eventos, como se muestra en la siguiente tabla. Para obtener más información, consulta Configura las notificaciones.

Trabajo Descripción Programa Activador
Nueva notificación de paquete Se les envía una notificación a todos los desarrolladores para que sepan que hay un nuevo paquete de API disponible. Se ejecuta una vez: el día en que el trabajo se habilita a las 9:00 p.m.

Nota: Las notificaciones se envían solo una vez, sin importar si configuras una cronExpression que haga que el trabajo se ejecute varias veces.

MINT.NEW_PACKAGE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Nueva notificación ad hoc Se envía una notificación a todos los desarrolladores para informarles que hay nuevos productos de API disponibles en mercados geográficos específicos. Se ejecuta una vez: el día en que el trabajo se habilita a las 9:00 p.m.

Nota: Las notificaciones se envían solo una vez, sin importar si configuras una cronExpression que haga que el trabajo se ejecute varias veces.

MINT.ADHOC_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Notificación de producto nuevo Se envía una notificación a todos los desarrolladores cuando hay un nuevo producto de API disponible. Se ejecuta una vez: el día en que el trabajo se habilita a las 9:00 p.m.

Nota: Las notificaciones se envían solo una vez, sin importar si configuras una cronExpression que haga que el trabajo se ejecute varias veces.

MINT.NEW_PRODUCT_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Notificación de nuevo plan de tarifas

Se les envía una notificación a los desarrolladores afectados cuando hay un nuevo plan de tarifas disponible. Se notifica a todos los desarrolladores suscritos al plan de tarifas principal que hay un nuevo plan de tarifas activo.

Además, tenga en cuenta lo siguiente:

  • Si el plan de tarifas es estándar, se notificará a todos los desarrolladores.
  • Si se trata de un plan de tarifas de la categoría de desarrolladores, solo los desarrolladores de esa categoría recibirán notificaciones.
  • Si se trata de un plan de tarifas para desarrolladores, solo se notificará a ese desarrollador específico.
Se ejecuta en la fecha de inicio del nuevo plan de tarifas, a las 4:30 a.m. MINT.NEW_RATEPLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Tnc nuevo Se envía una notificación a los desarrolladores afectados para que sepa que se publicaron Términos y Condiciones nuevos o revisados (y el desarrollador aún no los aceptó). Se publicará 30, 7 y 1 día antes de la fecha de inicio de los Términos y Condiciones nuevos o revisados, a las 9:00 p.m. MINT.TNC_ACCEPTANCE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Plan de tarifas con vencimiento Se envía una notificación a los desarrolladores afectados para avisar con anticipación que un plan de tarifas vencerá. Se publica 30, 7 y 1 día antes del vencimiento del plan de tarifas, a las 9:00 p.m. MINT.EXPIRING_RATE_PLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT

Administra la programación de trabajos de monetización con la API

En las siguientes secciones, se describe cómo administrar la programación de trabajos de monetización con la API:

Para obtener más información sobre las API que se describen en esta sección, consulta Trabajos programados en la referencia de la API.

Configura activadores

El programador depende de activadores para ejecutar trabajos. Un trabajo programado se ejecuta cuando se ejecuta su activador asociado. Las propiedades de un activador configuran la ejecución del trabajo y, cuando se establece el valor de estas propiedades, puedes controlar las características de la ejecución del trabajo, como cuándo se ejecuta un trabajo y con qué frecuencia.

Los dos tipos de activadores más comunes son los activadores cron y los activadores simples. Un activador cron tiene una propiedad cronExpression que especifica un programa de ejecución. Un activador simple no tiene una propiedad cronExpression; debes especificar el startTime para indicar cuándo entra en vigencia el activador y, de forma opcional, el endTime.

Las propiedades del activador son las siguientes (todas las horas que se indican están en UTC):

Propiedad Descripción
cronExpression Expresión cron para crear un programa de ejecución para el activador, por ejemplo: “A las 8:00 a.m. de lunes a viernes” o “A la 1:30 a.m. todos los últimos viernes del mes”. Consulta Compila expresiones cron para obtener más detalles.

Cuando especificas esta propiedad, se define el activador como un activador cron.

Nota: Si se especifican cronExpression y startTime/endTime, cronExpression tiene prioridad.

enabled Marca que indica si el activador está habilitado para ejecutarse. El valor puede ser uno de los siguientes:
  • true. El activador está habilitado para ejecutarse.
  • false. El activador está inhabilitado; no se ejecutará.
endTime Indica el tiempo en formato de época en el que el programa del activador ya no está vigente.
group El tipo de servidor en el que se ejecutará el activador. Por ejemplo, si se supone que el activador se debe ejecutar en un servidor de administración, el valor se debe establecer en management-server. Si se supone que el activador se ejecuta en un servidor de procesamiento de mensajes, el valor se debe establecer en message-processor.
id Identificación del activador.
jobId Identificación del trabajo que se ejecutará.
name Nombre único que se usa para identificar el activador.
priority Prioridad de ejecución relativa de los activadores si varios activadores están programados para ejecutarse al mismo Cuanto más bajo sea el valor, más alta será la prioridad. Por ejemplo, si dos activadores están programados para ejecutarse al mismo tiempo, y si uno tiene una prioridad de 1 y el otro una de 2, el activador con prioridad 1 se ejecuta primero.

Esta propiedad se aplica solo si varios activadores tienen exactamente el mismo tiempo de ejecución.

startTime Solo se aplica a activadores simples.

Indica el tiempo en formato de época en el que el programa del activador entra en vigor.

Nota: Si se especifican cronExpression y startTime/endTime, cronExpression tiene prioridad.

suiteId Marca que especifica si la notificación pertenece al conjunto de notificaciones a nivel del sistema o predeterminado. Los valores válidos son DEFAULT o SYSTEM, o puedes especificar tu propio nombre de conjunto único.
triggerDataMap Clave de bloqueo, custom_lock_key, que impide que varios servidores ejecuten el mismo trabajo al mismo tiempo.

Compila expresiones cron

Una expresión cron es una string que consta de seis o siete campos separados por espacios en blanco. La expresión representa un conjunto de horarios, por lo general, como un programa para ejecutar una rutina. Las expresiones cron que se especifican en la propiedad cronExpression de un activador se usan para programar la ejecución de ese activador.

Una expresión cron tiene el siguiente formato: s m h dm m dw y

Donde:

Campo Descripción Obligatorias Valores permitidos Caracteres especiales permitidos
s Segundos 0-59 , - * /
m Minutos 0-59 , - * /
h Horas 0-23 , - * /
dm Día del mes 0-31 , - * ? / W
m Mes 1 - 12 o ENE-DIC , - * /
dw Día de la semana 1-7 o DOM-SÁB , - * ? / Núm. de largo
y Año No Vacío o 1970-2099 , - * /

Los caracteres especiales se definen de la siguiente manera:

Carácter especial Descripción
* Se usa para seleccionar todos los valores dentro de un campo. Por ejemplo, * en el campo de minutos significa cada minuto.
? Se usa para especificar algo en uno de los dos campos en los que se permite el carácter, pero no en el otro. Por ejemplo, si deseas que el activador se ejecute en un día determinado del mes (por ejemplo, el 10), pero no te importa en qué día de la semana, especifica 10 en el campo del día del mes y ? en el campo del día de la semana.
- Se usa para especificar rangos. Por ejemplo, 10-12 en el campo de hora significa las horas 10, 11 y 12.
, Se usa para especificar valores adicionales. Por ejemplo, LUN, MES, VIE en el campo del día de la semana significa los días lunes, miércoles y viernes.
/ Se usa para especificar incrementos. Por ejemplo, 0/15 en el campo de segundos significa los segundos 0, 15, 30 y 45. Y 5/15 en el campo de segundos significa los segundos 5, 20, 35 y 50. También puedes especificar / después del carácter “. Hacer eso equivale a tener 0 antes del /. Especificar 1/3 en el campo del día del mes significa que la ejecución se realiza cada 3 días a partir del primer día del mes.
L Tiene un significado diferente en cada uno de los dos campos en los que está permitido. L en el campo del día del mes significa el último día del mes, es decir, el día 31 para enero o el día 28 para febrero en los años no bisiestos. En el campo del día de la semana, L significa el último día de la semana, es decir, 7 o SAT. Pero si se usa en el campo del día de la semana después de otro valor, significa el último día xxx del mes. Por ejemplo, 6L significa el último viernes del mes.
W Se usa para especificar el día de la semana (de lunes a viernes) más cercano al día determinado. Por ejemplo, si especificas 15 W en el campo del día del mes, significa el día de la semana más cercano al día 15 del mes. Por lo tanto, si el día 15 es sábado, el activador se ejecutará el viernes 14. Si el día 15 es un domingo, el activador se ejecutará el lunes 16. Si el día 15 es un martes, se ejecutará el martes 15. Sin embargo, si especificas 1 W para el día del mes y el primero es un sábado, el activador se ejecutará el lunes 3, ya que no "saltar" más allá del límite de los días de un mes. El carácter W solo se puede especificar cuando el día del mes es un solo día, no un rango o una lista de días.
# Se utiliza para especificar el enésimo día XXX del mes. Por ejemplo, el valor 6#3 en el campo del día de la semana significa el tercer viernes del mes (día 6 = viernes y #3 = el tercer viernes del mes). Otros ejemplos: 2#1 = el primer lunes del mes, 4#5 = el quinto miércoles del mes.

Estos son algunos ejemplos de expresiones cron (todas las horas que se indican están en UTC):

Expresión cron Programa de ejecución
0 0 12 * * ? 12 p.m. (mediodía) todos los días.
0 15 10 * * ? 2013 10:15 a.m. todos los días del año 2013.
0 10,44 14 ? 3 MIÉ a las 2:10 p.m. y a las 2:44 p.m. todos los miércoles del mes de marzo.
0 15 10 ? * 6L 2013-2015 a las 10:15 a.m. el último viernes de cada mes durante los años 2013, 2014 y 2015.
0 15 10 ? * 6#3 10:15 a.m. el tercer viernes de cada mes

Visualiza trabajos programados con la API

Puedes ver todos los trabajos programados actualmente si emites una solicitud GET a /triggers?orgid={org_name}.

Por ejemplo:

$ curl -H "Accept:application/json" -X GET \ "http://localhost:8080/v1/mint/triggers?orgid={org_name}" \ -u email:password

A continuación, se proporciona un ejemplo de la respuesta.

[ {
  "createdDate" : 1457924378176,
  "cronExpression" : "3 0 0 * * ?",
  "enabled" : true,
  "group" : "management-server",
  "id" : "MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
  "jobId" : "MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@management-server",
  "name" : "MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@management-server@@@DEFAULT",
  "priority" : "1",
  "suiteId" : "DEFAULT",
  "triggerDataMap" : {
    "custom_lock_key" : "mint.scheduler.__ORG_ID__.resetdeveloperrateplancounter@@@management"
  },
  "updatedDate" : 1457924378176
}, {
  "createdDate" : 1457924378014,
  "cronExpression" : "",
  "enabled" : true,
  "group" : "management-server",
  "id" : "MINT.ADHOC_NOTIFY@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
  "jobId" : "MINT.ADHOC_NOTIFY@@@management-server",
  "name" : "MINT.ADHOC_NOTIFY@@@management-server@@@DEFAULT",
  "priority" : "4",
  "startTime" : "1372916749000",
  "suiteId" : "DEFAULT",
  "triggerDataMap" : {
    "custom_lock_key" : "mint.scheduler.__ORG_ID__.adhocnotify@@@management"
  },
  "updatedDate" : 1457924378014
}, {
  "createdDate" : 1457924377877,
  "cronExpression" : "0 20 1 * * ?",
  "enabled" : true,
  "group" : "management-server",
  "id" : "MINT.CHARGE_DAILY@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
  "jobId" : "MINT.CHARGE_DAILY@@@management-server",
  "name" : "MINT.CHARGE_DAILY@@@management-server@@@DEFAULT",
  "priority" : "1",
  "suiteId" : "DEFAULT",
  "triggerDataMap" : {
    "custom_lock_key" : "mint.scheduler.__ORG_ID__.chargedaily@@@management"
  },
  "updatedDate" : 1457924377877
},
...
]

También puedes ver un trabajo programado específico mediante una solicitud GET a /triggers/{trig_id}, en la que {trig_id} es la identificación del activador de trabajo, como se describe en Descripción general de los trabajos programados. Por ejemplo:

$ curl -X GET \ "http://localhost:8080/v1/mint/triggers/MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT" \ -u email:password

A continuación, se proporciona un ejemplo de la respuesta.

{
    "createdDate" : 1457924377925,
    "cronExpression" : "0 20 2 * * ?",
    "enabled" : true,
    "group" : "management-server",
    "id" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
    "jobId" : "MINT.RENEW_DEV_RATEPLAN@@@management-server",
    "name" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT",
    "priority" : "1",
    "suiteId" : "DEFAULT",
    "triggerDataMap" : {
        "custom_lock_key" : "mint.scheduler.__ORG_ID__.renewydevrateplan@@@management"
    },
    "updatedDate" : 1457924377925
}

Actualiza trabajos programados con la API

Puedes actualizar un trabajo programado si cambias las propiedades de su activador. Por ejemplo, es posible que debas cambiar el programa de ejecución del activador.

Para los trabajos de activador cron (es decir, los trabajos que incluyen un valor de expresión cron), solo puedes cambiar los valores de cronExpression y las propiedades habilitadas. Se ignoran otros cambios. Para los trabajos que no especifican un valor de expresión cron, puedes cambiar otras propiedades, como startTime o priority.

Para actualizar un trabajo programado, emite una solicitud PUT a /triggers/{trig_id}, en la que {trig_id} es la identificación del activador de trabajo, como se describe en Descripción general de los trabajos programados. Cuando realizas la actualización, debes especificar en el cuerpo de la solicitud la configuración actualizada y el ID del activador.

Por ejemplo, la siguiente solicitud actualiza la expresión cron para que el trabajo de renovación del nuevo plan de tarifas del desarrollador se ejecute todos los días a las 5 a.m. UTC:

$ curl -H "Content-Type: application/json" -X PUT -d \
 '{
    "cronExpression" : "0 0 5 * * ?",
    "enabled" : true,
    "group" : "management-server", 
    "id" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
    "jobId" : "MINT.RENEW_DEV_RATEPLAN@@@management-server",
    "name" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT",
    "priority" : "1",
    "suiteId" : "DEFAULT",
    "triggerDataMap" : {
        "custom_lock_key" : "mint.scheduler.__ORG_ID__.renewydevrateplan@@@management"
    },
}' \
https://localhost:8080/v1/mint/triggers/MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT
\
-u email:password

Inhabilita y vuelve a habilitar un trabajo programado con la API

Para inhabilitar un trabajo programado, establece el valor de la propiedad enabled de su activador como falso. Por ejemplo:

$ curl -H "Content-Type: application/json" -X PUT -d \
 '{
    "cronExpression" : "0 0 5 * * ?",
    "enabled" : false,
    "group" : "management-server",
    "id" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
    "jobId" : "MINT.RENEW_DEV_RATEPLAN@@@management-server",
    "name" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT",
    "priority" : "1",
    "suiteId" : "DEFAULT",
    "triggerDataMap" : {
        "custom_lock_key" : "mint.scheduler.__ORG_ID__.renewydevrateplan@@@management"
    },
}' \
https://localhost:8080/v1/mint/triggers/MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT
\
-u email:password

Para volver a habilitar un trabajo inhabilitado, configura el valor de la propiedad enabled de su activador como verdadero.

Próximos pasos

Se recomienda volver a sincronizar periódicamente con la monetización tu organización y los desarrolladores, aplicaciones y productos que creaste con los servicios de API de Edge. Obtén más información en Sincroniza datos de Apigee Edge con monetización.