Planifier des tâches de monétisation

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Présentation des jobs planifiés

La monétisation fournit un planificateur de tâches et un ensemble de tâches préprogrammées pour s'exécuter à des heures définies.

Le tableau ci-dessous liste les tâches préprogrammées fournies par la monétisation et les heures planifiées pour leur exécution (toutes les heures indiquées sont au format UTC). Le déclencheur pour chaque tâche est également indiqué.

Tâche Description Planification (UTC) Déclencheur
Taux de taxe mensuel pour les développeurs Extrait le taux de taxe à partir du moteur de calcul pour chaque développeur, puis met à jour l'entité développeur avec le taux de taxe révisé. Le premier jour de chaque mois à 5h45 MINT.MONTHLY_DEV_TAXRATE@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Renouveler l'abonnement Applique des frais récurrents pour les plans tarifaires actifs ou de nouveaux frais pour les plans tarifaires futurs commençant à la date du jour. Tous les jours à cinq secondes après minuit MINT.RENEW_SUBSCRIPTIONS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Outil de mise à jour XeFeed Obtient le taux de change en dollars américains pour chaque devise acceptée. Chaque jour à une seconde après minuit MINT.XEFEED@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Renouveler le forfait de développeur Reporte les dates de renouvellement d'un plan tarifaire et calcule les frais de résiliation anticipée. Tous les jours à 2h20 MINT.RENEW_DEV_RATEPLAN@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Réessayer le relais de transaction Remarque: Cette tâche est obsolète et n'a aucune incidence sur la monétisation. Tous les jours à 4h30 MINT.RETRY_TX_RELAY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Nettoyage des transactions Remarque: Cette tâche est obsolète et n'a aucune incidence sur la monétisation. Tous les jours à 5h30 MINT.TX_CLEANSER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Audit du solde des développeurs Audite le solde du compte de développeur. Copie l'utilisation actuelle et le solde prépayé/la limite de crédit postpayée dans une table d'audit, puis déduit l'utilisation actuelle du compte de développeur et renvoie le solde d'utilisation à zéro. Premier jour de chaque mois 5 secondes après minuit MINT.DEVELOPER_BALANCE_AUDIT@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Documentation sur la facturation mensuelle Génère des documents de facturation.

Remarque:Apigee ne permet plus de générer des documents de facturation à partir d'Apigee Edge Monetization. Consultez Retraits.

Le 11 de chaque mois, 1 minute après minuit MINT.MONTLY_BILLING_DOCS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Compteur du plan tarifaire du développeur Remarque: Cette tâche est obsolète et n'a aucune incidence sur la monétisation. Tous les jours à trois secondes après minuit MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Frais quotidiens Recalcule tous les totaux horaires des transactions et les utilise pour calculer les totaux quotidiens de la veille. Tous les jours à 1h20 MINT.CHARGE_DAILY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Facturation à l'heure Calcule le total de tous les transactions pour chaque trimestre d'une heure. 1 minute après chaque quart d'heure MINT.CHARGE_HOURLY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Actualiser la configuration des notifications Réindexe toutes les conditions de notification. Toutes les 5 minutes MINT.REFRESH_NOTIFICATION_CONFIG@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Send email notifications Envoie des notifications par e-mail accumulées Toutes les heures MINT.EMAIL_NOTIFICATION@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Limite d'actualisation Remarque: Cette tâche est obsolète et n'a aucune incidence sur la monétisation. N/A (ne s'exécute jamais) MINT.REFRESH_LIMIT@@@
message-processor@@@SYSTEM@@@
message-processor@@@SYSTEM

En plus des tâches répertoriées ci-dessus, vous pouvez activer des tâches via des notifications d'événements, comme indiqué dans le tableau suivant. Pour en savoir plus, consultez Configurer les notifications.

Job Description Programmer Déclencheur
Notification de nouveau colis Envoie une notification à tous les développeurs pour les informer qu'un nouveau package d'API est disponible. S'exécute une fois, le jour où le job est activé à 21h.

Remarque: Les notifications ne sont envoyées qu'une seule fois, que vous configuriez ou non un cronExpression qui entraîne l'exécution de la tâche plusieurs fois.

MINT.NEW_PACKAGE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Nouvelle notification ponctuelle Envoie une notification à tous les développeurs concernant la disponibilité de nouveaux produits d'API sur des marchés géographiques spécifiques. S'exécute une fois, le jour où le job est activé à 21h.

Remarque: Les notifications ne sont envoyées qu'une seule fois, que vous configuriez ou non un cronExpression qui entraîne l'exécution de la tâche plusieurs fois.

MINT.ADHOC_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Notification de nouveau produit Envoie une notification à tous les développeurs pour les informer qu'un nouveau produit d'API est disponible. S'exécute une fois, le jour où le job est activé à 21h.

Remarque: Les notifications ne sont envoyées qu'une seule fois, que vous configuriez ou non un cronExpression qui entraîne l'exécution de la tâche plusieurs fois.

MINT.NEW_PRODUCT_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Notification de nouveau plan tarifaire

Envoie une notification aux développeurs concernés qu'un nouveau plan tarifaire est disponible. Tous les développeurs abonnés au plan tarifaire parent sont informés qu'un nouveau plan tarifaire est actif.

Notez en outre les points suivants :

  • S'il s'agit d'un plan standard, tous les développeurs en seront informés.
  • S'il s'agit d'un plan tarifaire pour la catégorie "Développeur", seuls les développeurs de cette catégorie seront avertis.
  • S'il s'agit d'un plan tarifaire développeur, seul ce développeur spécifique en sera informé.
Exécution à la date de début du nouveau plan tarifaire, à 4h30 MINT.NEW_RATEPLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Nouveau TNC Envoie une notification aux développeurs concernés afin d'informer les développeurs concernés que les nouvelles conditions d'utilisation ou les conditions d'utilisation ont été publiées (et que le développeur ne les a pas encore acceptées). Exécution 30, 7 et 1 jour avant la date de début des nouvelles conditions d'utilisation ou des conditions d'utilisation révisées, à 21h MINT.TNC_ACCEPTANCE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Plan tarifaire arrivant à expiration Envoie une notification aux développeurs concernés pour les avertir à l'avance qu'un plan tarifaire va expirer. Exécution 30, 7 et 1 jour avant l'expiration du plan tarifaire, à 21h MINT.EXPIRING_RATE_PLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT

Gérer le calendrier des jobs de monétisation à l'aide de l'API

Les sections suivantes décrivent comment gérer le calendrier des jobs de monétisation à l'aide de l'API:

Pour plus d'informations sur les API décrites dans cette section, consultez la section Jobs planifiés de la documentation de référence de l'API.

Configurer les déclencheurs

Le programmeur s'appuie sur des déclencheurs pour exécuter les tâches. Une tâche planifiée s'exécute lorsque le déclencheur associé s'exécute. Les propriétés d'un déclencheur configurent l'exécution de la tâche. En définissant la valeur de ces propriétés, vous pouvez contrôler les caractéristiques de l'exécution de la tâche, comme le moment et la fréquence d'exécution d'une tâche.

Les deux types de déclencheurs les plus courants sont les déclencheurs Cron et les déclencheurs simples. Un déclencheur Cron possède une propriété cronExpression qui spécifie un calendrier d'exécution. Un déclencheur simple ne possède pas de propriété cronExpression. Vous spécifiez startTime pour indiquer quand le déclencheur entre en vigueur, et éventuellement endTime.

Les propriétés du déclencheur sont les suivantes (toutes les heures indiquées sont au format UTC):

Propriété Description
cronExpression Expression Cron pour créer un calendrier d'exécution pour le déclencheur, par exemple : "À 8h tous les lundis au vendredi" ou "À 1h30 le dernier vendredi du mois". Pour en savoir plus, consultez la section Créer des expressions Cron.

La spécification de cette propriété définit le déclencheur comme un déclencheur Cron.

Remarque: Si cronExpression et startTime/endTime sont spécifiés, cronExpression est prioritaire.

enabled Indicateur indiquant si l'exécution du déclencheur est activée. La valeur peut être l'une des suivantes :
  • true : le déclencheur est activé pour s'exécuter.
  • false. Le déclencheur est désactivé. Il ne s'exécutera pas.
endTime Heure au format epoch pendant laquelle la programmation du déclencheur n'est plus en vigueur.
group Type de serveur dans lequel le déclencheur s'exécutera. Par exemple, si le déclencheur est censé s'exécuter sur un serveur de gestion, la valeur doit être définie sur management-server. Si le déclencheur est censé s'exécuter dans un serveur de traitement des messages, la valeur doit être définie sur message-processor.
id Identification du déclencheur.
jobId Identification de la tâche à exécuter.
name Nom unique permettant d'identifier le déclencheur.
priority Priorité d'exécution relative des déclencheurs si plusieurs déclencheurs sont programmés pour s'exécuter en même temps. Plus la valeur est faible, plus la priorité est élevée. Par exemple, si deux déclencheurs sont programmés pour s'exécuter en même temps, et si l'un a une priorité de 1 et l'autre une priorité de 2, le déclencheur avec la priorité 1 s'exécute en premier.

Cette propriété ne s'applique que si plusieurs déclencheurs ont exactement la même durée d'exécution.

startTime S'applique uniquement aux déclencheurs simples.

Heure au format epoch lorsque la planification du déclencheur entre en vigueur.

Remarque: Si cronExpression et startTime/endTime sont spécifiés, cronExpression est prioritaire.

suiteId Indicateur spécifiant si la partie notification de la suite de notifications au niveau du système ou par défaut. Les valeurs valides sont DEFAULT ou SYSTEM. Vous pouvez également spécifier votre propre nom de suite unique.
triggerDataMap Clé de verrouillage, custom_lock_key, qui empêche plusieurs serveurs d'exécuter la même tâche en même temps.

Créer des expressions Cron

Une expression Cron est une chaîne comprenant six ou sept champs séparés par un espace. L'expression représente un ensemble d'heures, généralement sous la forme d'une programmation d'exécution d'une routine. Les expressions Cron spécifiées dans la propriété cronExpression d'un déclencheur permettent de planifier l'exécution de ce déclencheur.

Une expression Cron a le format suivant: s m h dm m dw y

Où :

Champ Description Obligatoire Valeurs autorisées Caractères spéciaux autorisés
s Secondes Oui 0-59 , - * /
m Minutes Oui 0-59 , - * /
h Heures Oui 0-23 , - * /
dm Jour du mois Oui 0-31 , - * ? / GD
m Mois Oui 1-12 ou JAN-DEC , - * /
dw Jour de la semaine Oui 1-7 ou SUN-SAT , - * ? / L n°
y Year Non Vide ou 1970-2099 , - * /

Les caractères spéciaux sont définis comme suit:

Caractère spécial Description
* Permet de sélectionner toutes les valeurs d'un champ. Par exemple, * dans le champ "minute" signifie toutes les minutes.
? Permet de spécifier un élément dans l'un des deux champs où ce caractère est autorisé, mais pas dans l'autre. Par exemple, si vous souhaitez que le déclencheur s'exécute un jour particulier du mois (le 10, par exemple), mais que vous ne vous souciez pas de quel jour de la semaine, spécifiez "10" dans le champ du jour du mois et ? dans le champ du jour de la semaine.
- Permet de spécifier des plages. Par exemple, "10-12" dans le champ "Heure" correspond aux heures 10, 11 et 12.
, Permet de spécifier des valeurs supplémentaires. Par exemple, MON,MER,FRI dans le champ du jour de la semaine désigne les jours du lundi, du mercredi et du vendredi.
/ Permet de spécifier des incréments. Par exemple, 0/15 dans le champ des secondes correspond aux secondes 0, 15, 30 et 45. Et 5/15 dans le champ des secondes signifie les secondes 5, 20, 35 et 50. Vous pouvez également spécifier le caractère "/" après le caractère ". Cela équivaut à avoir 0 avant /. Si vous spécifiez 1/3 dans le champ du jour du mois, cela signifie qu'il s'exécute tous les trois jours à compter du premier jour du mois.
L Elle a une signification différente dans chacun des deux champs. L dans le champ du jour du mois correspond au dernier jour du mois, c'est-à-dire au jour 31 pour janvier ou au jour 28 pour février pour les années non bissextiles. Dans le champ du jour de la semaine, L signifie le dernier jour de la semaine, c'est-à-dire 7 ou SAT. Toutefois, s'il est utilisé dans le champ du jour de la semaine après une autre valeur, cela signifie le xxx dernier jour du mois. Par exemple, 6L correspond au dernier vendredi du mois.
 W Permet de spécifier le jour de la semaine (du lundi au vendredi) le plus proche du jour donné. Par exemple, si vous spécifiez 15W dans le champ du jour du mois, cela correspond au jour de la semaine le plus proche du 15 du mois. Ainsi, si le 15 est un samedi, le déclencheur s'exécutera le vendredi 14. Si le 15 est un dimanche, le déclencheur s'exécutera le lundi 16. Si le 15 est un mardi, la requête s'exécutera le mardi 15. Toutefois, si vous spécifiez 1W pour le jour du mois et que le 1er est un samedi, le déclencheur s'exécutera le lundi 3, car il ne"sautera" pas au-dessus des jours du mois. Le caractère W ne peut être spécifié que lorsque le jour du mois est un seul jour, et non une plage ou une liste de jours.
# Permet de spécifier le XXX nième jour du mois. Par exemple, la valeur 6#3 dans le champ du jour de la semaine correspond au troisième vendredi du mois (jour 6 = vendredi et n°3 = le troisième vendredi du mois). Autres exemples: 2#1 = le premier lundi du mois, 4#5 = le cinquième mercredi du mois.

Voici quelques exemples d'expressions Cron (toutes les heures indiquées sont exprimées au format UTC):

Expression Cron Calendrier d'exécution
0 0 12 * * ? tous les jours à 12h.
0 15 10 * * ? 2013 10h15 tous les jours de l'année 2013.
0 10,44 14 ? 3 MER 14h10 et à 14h44 tous les mercredis du mois de mars.
0 15 10 ? * 6L 2013-2015 10h15 le dernier vendredi de chaque mois au cours des années 2013, 2014 et 2015.
0 15 10 ? * 6#3 Le troisième vendredi à 10h15 du mois,

Afficher les jobs planifiés à l'aide de l'API

Vous pouvez afficher tous les jobs actuellement planifiés en envoyant une requête GET à /triggers?orgid={org_name}.

Exemple :

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

Voici un exemple de réponse :

[ {
  "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
},
...
]

Vous pouvez également afficher une tâche planifiée spécifique en envoyant une requête GET à /triggers/{trig_id}, où {trig_id} est l'identification du déclencheur de tâche, comme décrit dans la section Présentation des tâches planifiées. Exemple :

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

Voici un exemple de réponse :

{
    "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
}

Mettre à jour des jobs planifiés à l'aide de l'API

Vous pouvez mettre à jour une tâche planifiée en modifiant les propriétés de son déclencheur. Par exemple, vous devrez peut-être modifier le calendrier d'exécution du déclencheur.

Pour les tâches de déclenchement Cron (c'est-à-dire les tâches qui incluent une valeur d'expression Cron), vous ne pouvez modifier que les valeurs de cronExpression et les propriétés activées. Les autres modifications sont ignorées. Pour les tâches qui ne spécifient pas de valeur d'expression Cron, vous pouvez modifier d'autres propriétés, telles que startTime ou priority.

Pour mettre à jour une tâche planifiée, envoyez une requête PUT à /triggers/{trig_id}, où {trig_id} est l'identification du déclencheur de tâche, comme décrit dans la section Présentation des tâches planifiées. Lorsque vous effectuez la mise à jour, vous devez spécifier les paramètres mis à jour dans le corps de la requête et l'ID du déclencheur.

Par exemple, la requête suivante met à jour l'expression Cron pour la tâche de renouvellement du nouveau forfait de développeur afin qu'elle s'exécute tous les jours à 5h 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

Désactiver et réactiver un job planifié à l'aide de l'API

Pour désactiver une tâche planifiée, définissez la valeur de la propriété enabled de son déclencheur sur "false". Exemple :

$ 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

Pour réactiver une tâche désactivée, définissez la valeur de la propriété enabled de son déclencheur sur "true".

Étapes suivantes

Il est conseillé de se resynchroniser régulièrement avec la monétisation pour votre organisation et avec tous les développeurs, applications et produits que vous avez créés à l'aide des services d'API Edge. Découvrez comment synchroniser les données Apigee Edge avec la monétisation.