Estás viendo la documentación de Apigee Edge.
Ir a la documentación de
Apigee X. info
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 horarios designados.
En la siguiente tabla, se enumeran los trabajos programados previamente que proporciona la monetización y los horarios en los que se programaron para ejecutarse (todos los horarios que se indican están en UTC). También se indica el activador de cada trabajo.
| Job | Descripción | Programa (UTC) | Activador |
|---|---|---|---|
| Tasa impositiva mensual para desarrolladores | Recupera la tasa impositiva del motor de impuestos para cada desarrollador y actualiza la entidad del desarrollador con la tasa impositiva revisada. | El primer día de cada mes a las 5:45 a.m. | MINT.MONTHLY_DEV_TAXRATE@@@ |
| Renueva la suscripción | Aplica tarifas recurrentes para los planes de tarifas activos o tarifas nuevas para los planes de tarifas futuros que comienzan el día actual. | Todos los días a las 00:00:05 | MINT.RENEW_SUBSCRIPTIONS@@@ |
| Actualizador de XeFeed | Obtiene el tipo de cambio en dólares estadounidenses para cada moneda admitida. | Todos los días, 1 segundo después de la medianoche | MINT.XEFEED@@@ |
| Renueva el plan de tarifa de desarrollador | Extiende las fechas de renovación de un plan de tarifas y calcula las tarifas por cancelación anticipada. | Todos los días a las 2:20 a.m. | MINT.RENEW_DEV_RATEPLAN@@@ |
| Reintenta la retransmisión de la transacción | Nota: Este trabajo se considera obsoleto y no tiene ningún impacto en la monetización. | Todos los días a las 4:30 a.m. | MINT.RETRY_TX_RELAY@@@ |
| Limpiador de transacciones | Nota: Este trabajo se considera obsoleto y no tiene ningún impacto en la monetización. | Todos los días a las 5:30 a.m. | MINT.TX_CLEANSER@@@ |
| Auditoría del saldo de desarrollador | Audita el saldo de cuenta del desarrollador. Copia el uso actual y el saldo prepagado o el límite de crédito pospago en una tabla de auditoría, luego deduce el uso actual de la cuenta de desarrollador y restablece el saldo de uso a cero. | El primer día de cada mes, 5 segundos después de la medianoche | MINT.DEVELOPER_BALANCE_AUDIT@@@ |
| 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 Retirements. |
El 11ᵉʳ día de cada mes, 1 minuto después de la medianoche | MINT.MONTLY_BILLING_DOCS@@@ |
| Contador del plan de tarifas para desarrolladores | Nota: Este trabajo se considera obsoleto y no tiene ningún impacto en la monetización. | Todos los días a las 3 segundos después de la medianoche | MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@ |
| 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@@@ |
| Cargos por hora | Calcula todos los totales de transacciones para cada cuarto de hora. | 1 minuto después de cada cuarto de hora | MINT.CHARGE_HOURLY@@@ |
| Actualiza la configuración de notificaciones | Vuelve a indexar todas las condiciones de notificación. | Cada 5 minutos | MINT.REFRESH_NOTIFICATION_CONFIG@@@ |
| Enviar notificaciones por correo electrónico | Envía notificaciones por correo electrónico acumuladas | Cada 1 hora | MINT.EMAIL_NOTIFICATION@@@ |
| Límite de actualización | Nota: Este trabajo se considera obsoleto y no tiene ningún impacto en la monetización. | N/A (nunca se ejecuta) | MINT.REFRESH_LIMIT@@@ |
Además de los trabajos mencionados anteriormente, hay otros que puedes habilitar a través de notificaciones de eventos, como se indica en la siguiente tabla. Para obtener más información, consulta Cómo configurar las notificaciones.
| Trabajo | Descripción | Programa | Activador |
|---|---|---|---|
| Notificación de paquete nuevo | Envía una notificación a todos los desarrolladores para informarles que hay un nuevo paquete de API disponible. |
Se ejecuta una vez, el día en que se habilita el trabajo a las 9:00 p.m.
Nota: Las notificaciones se envían solo una vez, independientemente de si configuras un |
MINT.NEW_PACKAGE_NOTIFY@@@ |
| Nueva notificación ad hoc | 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 se habilita el trabajo a las 9:00 p.m.
Nota: Las notificaciones se envían solo una vez, independientemente de si configuras un |
MINT.ADHOC_NOTIFY@@@ |
| Notificación de producto nuevo | Envía una notificación a todos los desarrolladores para informarles que hay un nuevo producto de API disponible. |
Se ejecuta una vez, el día en que se habilita el trabajo a las 9:00 p.m.
Nota: Las notificaciones se envían solo una vez, independientemente de si configuras un |
MINT.NEW_PRODUCT_NOTIFY@@@ |
| Notificación de nuevo plan de tarifas |
Envía una notificación a los desarrolladores afectados para informarles que hay un nuevo plan de tarifas disponible. Todos los desarrolladores suscritos al plan de tarifas principal reciben una notificación sobre la activación de un nuevo plan de tarifas. Además, ten en cuenta lo siguiente:
|
Se ejecuta en la fecha de inicio del nuevo plan de tarifas, a las 4:30 a.m. | MINT.NEW_RATEPLAN_NOTIFY@@@ |
| T&C nuevas | Envía una notificación a los desarrolladores afectados para informarles que se publicaron Términos y Condiciones nuevos o revisados (y que el desarrollador aún no los aceptó). | Se ejecuta 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@@@ |
| Plan de tarifas que vence | Envía una notificación a los desarrolladores afectados para advertirles con anticipación que un plan de tarifas vencerá. | Se ejecuta 30, 7 y 1 día antes del vencimiento del plan de tarifas, a las 9 p.m. | MINT.EXPIRING_RATE_PLAN_NOTIFY@@@ |
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:
- Configura activadores
- Cómo crear expresiones cron
- Visualiza trabajos programados con la API
- Cómo actualizar trabajos programados con la API
- Cómo inhabilitar y volver a habilitar un trabajo programado con la API
Para obtener más información sobre las APIs que se describen en esta sección, consulta Trabajos programados en la referencia de la API.
Configura activadores
El programador depende de los 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, al establecer 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 la propiedad startTime para indicar cuándo entra en vigencia el activador y, de manera opcional, la propiedad 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, como "A las 8:00 a.m. todos los lunes a viernes" o "A la 1:30 a.m. todos los últimos viernes del mes". Consulta Cómo crear expresiones cron para obtener más detalles.
Si especificas esta propiedad, se define el activador como un activador cron. Nota: Si se especifican |
enabled |
Es una marca que indica si el activador está habilitado para ejecutarse. El valor puede ser uno de los siguientes:
|
endTime |
Fecha y hora en formato de época en la que la programación del activador ya no está vigente. |
group |
Tipo de servidor en el que se ejecutará el activador. Por ejemplo, si el activador debe ejecutarse en un servidor de administración, el valor debe establecerse en management-server. Si se supone que el activador se ejecutará en un servidor de procesamiento de mensajes, el valor debe establecerse en message-processor. |
id |
Es la identificación del activador. |
jobId |
Es la identificación del trabajo que se ejecutará. |
name |
Nombre único que se usa para identificar el activador. |
priority |
Es la prioridad de ejecución relativa de los activadores si hay varios programados para ejecutarse al mismo tiempo. Cuanto más bajo sea el valor, mayor 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 prioridad de 2, el activador con prioridad 1 se ejecuta primero.
Esta propiedad solo se aplica si varios activadores tienen exactamente la misma hora de ejecución. |
startTime |
Solo se aplica a los activadores simples.
Es la fecha y hora en formato de época en la que entra en vigencia la programación del activador. Nota: Si se especifican |
suiteId |
Es una marca que especifica si la parte de notificación del sistema forma parte del 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 evita que varios servidores ejecuten el mismo trabajo al mismo tiempo. |
Cómo crear expresiones cron
Una expresión de cron es una cadena que consta de seis o siete campos separados por espacios en blanco. La expresión representa un conjunto de horas, normalmente 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.
s
m h dm m dw y
Donde:
| Campo | Descripción | Obligatorio | Valores permitidos | Caracteres especiales permitidos |
|---|---|---|---|---|
s |
Segundos | Sí | 0-59 | , - * / |
m |
Minutos | Sí | 0-59 | , - * / |
h |
Horas | Sí | 0-23 | , - * / |
dm |
Día del mes | Sí | 0-31 | , - * ? / L W |
m |
Mes | Sí | 1-12 o ENE-DIC | , - * / |
dw |
Día de la semana | Sí | 1-7 o DOM-SAB | , - * ? / L # |
y |
Año | No | Vacío o de 1970 a 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 específico del mes (por ejemplo, el 10), pero no te importa 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 horas significa las horas 10, 11 y 12. |
| , | Se usa para especificar valores adicionales. Por ejemplo, LUN,MIÉ,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 ". Esto equivale a tener un 0 antes de la /. Especificar 1/3 en el campo del día del mes significa que se ejecutará 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 se permite. La letra 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, la letra L significa el último día de la semana, es decir, el 7 o el SÁB. Sin embargo, 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 15W en el campo del día del mes, significa el día de la semana más cercano al 15º día del mes. Por lo tanto, si el 15 es sábado, el activador se ejecutará el viernes 14. Si el 15 es domingo, el activador se ejecutará el lunes 16. Si el 15 es martes, se ejecutará el martes 15. Sin embargo, si especificas 1W para el día del mes y el 1º es sábado, el activador se ejecutará el lunes 3, ya que no "saltará" el 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 usa para especificar el n-é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 3ᵉʳ 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 (todos los horarios que se indican están en UTC):
| Expresión cron | Programa de ejecución |
|---|---|
| 0 0 12 * * ? | Todos los días a las 12 p.m. (mediodía) |
| 0 15 10 * * ? 2013 | Se activa a las 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. cada 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 | A las 10:15 a.m. el tercer viernes de cada mes |
Visualiza trabajos programados con la API
Puedes ver todos los trabajos programados actualmente si envías 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 si emites una solicitud GET a /triggers/{trig_id}, donde {trig_id} es la identificación del activador del 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 cambiando las propiedades de su activador. Por ejemplo, es posible que debas cambiar el programa de ejecución del activador.
En el caso de los trabajos activados por cron (es decir, los trabajos que incluyen un valor de expresión cron), solo puedes cambiar los valores de las propiedades cronExpression y 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, envía una solicitud PUT a /triggers/{trig_id}, donde {trig_id} es la identificación del activador de trabajo, como se describe en Descripción general de los trabajos programados. Cuando realices la actualización, deberás 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 del trabajo de renovación del nuevo plan de tarifas para desarrolladores para que 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
Cómo inhabilitar y volver a habilitar un trabajo programado con la API
Para inhabilitar un trabajo programado, establece el valor de la propiedad enabled de su activador en false. 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, establece el valor de la propiedad enabled de su activador en verdadero.
Próximos pasos
Es recomendable que vuelvas a sincronizar periódicamente con la monetización tu organización y los desarrolladores, las aplicaciones y los productos que creaste con los servicios de la API de Edge. Obtén más información en Cómo sincronizar los datos de Apigee Edge con la monetización.