Planifier des tâches de monétisation

Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.

Présentation des jobs planifiés

La monétisation fournit un planificateur de tâches et un ensemble de tâches prévues pour s'exécuter à des heures spécifiques.

Le tableau ci-dessous liste les jobs prévus fournis par la monétisation et les heures auxquelles ils sont programmés pour s'exécuter (toutes les heures indiquées sont en UTC). Le déclencheur de chaque job est également indiqué.

Tâche Description Planification (UTC) Déclencheur
Taux de taxe mensuel pour les développeurs Récupère le taux de taxe du moteur de taxe pour chaque développeur et met à jour l'entité du 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 qui commencent le jour même. Tous les jours à 00h00:05 MINT.RENEW_SUBSCRIPTIONS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
XeFeed Updater Obtient le taux de change en dollars américains pour chaque devise acceptée. Chaque jour à 00h01 MINT.XEFEED@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Renouveler un plan tarifaire pour les développeurs Reporte les dates de renouvellement d'un forfait et calcule les frais de résiliation anticipée. Tous les jours à 2h20 MINT.RENEW_DEV_RATEPLAN@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Relais de transaction : nouvelle tentative Remarque : Cette tâche a été abandonnée et n'a aucune incidence sur la monétisation. Tous les jours à 4h30 MINT.RETRY_TX_RELAY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Nettoyeur de transactions Remarque : Cette tâche a été abandonnée 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 du développeur Vérifie le solde du compte de développeur. Copie l'utilisation actuelle et le solde prépayé/la limite de crédit postpayé dans une table d'audit, puis déduit l'utilisation actuelle du compte de développeur et ramène le solde d'utilisation à zéro. Le premier jour de chaque mois à 00h00 et cinq secondes 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 Arrêts de service.

Le 11e jour de chaque mois à 00h01 MINT.MONTLY_BILLING_DOCS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Compteur de plans tarifaires pour les développeurs Remarque : Cette tâche a été abandonnée et n'a aucune incidence sur la monétisation. Chaque jour à 00h00:03 MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Frais quotidiens Recalcule tous les totaux de transactions horaires et les utilise pour calculer les totaux quotidiens de la veille. Tous les jours à 1h20 MINT.CHARGE_DAILY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Frais horaires Calcule le total de toutes les transactions pour chaque quart d'heure. 1 minute après chaque quart d'heure MINT.CHARGE_HOURLY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Actualiser la configuration de notification Réindexe toutes les conditions de notification. Toutes les 5 minutes MINT.REFRESH_NOTIFICATION_CONFIG@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Envoyer des notifications par e-mail Envoie les 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 a été abandonnée 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 jobs listés ci-dessus, vous pouvez activer des jobs via les 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 package Envoie une notification à tous les développeurs pour les informer qu'un nouveau package d'API est disponible. Exécution unique : le jour où la tâche est activée, à 21h.

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

MINT.NEW_PACKAGE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Nouvelle notification ad hoc Envoie une notification à tous les développeurs pour les informer que de nouveaux produits d'API sont disponibles sur des marchés géographiques spécifiques. Exécution unique : le jour où la tâche est activée, à 21h.

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

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. Exécution unique : le jour où la tâche est activée, à 21h.

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

MINT.NEW_PRODUCT_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Notification de nouveau forfait

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

Notez en outre les points suivants :

  • Si le plan tarifaire est un plan standard, tous les développeurs recevront une notification.
  • S'il s'agit d'un plan tarifaire pour les catégories de développeurs, seuls les développeurs de cette catégorie recevront une notification.
  • S'il s'agit d'un plan tarifaire pour les développeurs, seul ce développeur spécifique recevra une notification.
Exécution à la date de début du nouveau forfait, à 4h30 du matin MINT.NEW_RATEPLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Nouveaux CUG Envoie une notification aux développeurs concernés pour les informer de la publication de nouvelles conditions d'utilisation ou de conditions d'utilisation révisées (et que le développeur ne les a pas encore acceptées). S'exécute 30, 7 et 1 jour avant la date de début des nouvelles conditions d'utilisation ou des conditions d'utilisation révisées, à 21h00. 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 forfait va expirer. S'exécute 30, 7 et 1 jours avant l'expiration du forfait, à 21h00 MINT.EXPIRING_RATE_PLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT

Gérer le calendrier des tâches de monétisation à l'aide de l'API

Les sections suivantes décrivent comment gérer la planification des tâches de monétisation à l'aide de l'API :

Pour en savoir plus sur les API décrites dans cette section, consultez Tâches planifiées dans la documentation de référence de l'API.

Configurer les déclencheurs

Le planificateur s'appuie sur des déclencheurs pour exécuter les jobs. Un job planifié s'exécute lorsque son déclencheur associé s'exécute. Les propriétés d'un déclencheur configurent l'exécution du job. En définissant la valeur de ces propriétés, vous pouvez contrôler les caractéristiques de l'exécution du job, comme le moment et la fréquence d'exécution.

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 n'a pas de propriété cronExpression. Vous spécifiez startTime pour indiquer quand le déclencheur prend effet, et éventuellement endTime.

Voici les propriétés du déclencheur (toutes les heures indiquées sont en UTC) :

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

Si vous spécifiez cette propriété, le déclencheur est défini comme un déclencheur cron.

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

enabled Indicateur qui indique si le déclencheur est activé pour l'exécution. La valeur peut être l'une des suivantes :
  • true. Le déclencheur est activé pour l'exécution.
  • false. Le déclencheur est désactivé et ne s'exécutera pas.
endTime Heure au format epoch à laquelle le programme 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 sur un serveur de traitement des messages, la valeur doit être définie sur message-processor.
id Identification du déclencheur.
jobId Identification du job à exécuter.
name Nom unique utilisé pour identifier le déclencheur.
priority Priorité d'exécution relative des déclencheurs si plusieurs déclencheurs sont planifié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 de priorité 1 s'exécute en premier.

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

startTime Ne s'applique qu'aux déclencheurs simples.

Heure au format epoch à laquelle la programmation du déclencheur prend effet.

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

suiteId Indicateur qui spécifie si la notification fait partie 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 correspond à une chaîne composée de six ou sept champs séparés par des espaces blancs. L'expression représente un ensemble d'heures, généralement sous la forme d'une programmation pour exécuter une routine. Les expressions Cron spécifiées dans la propriété cronExpression d'un déclencheur sont utilisées pour 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 , - * ? / L W
m Mois Oui 1-12 ou JAN-DEC , - * /
dw Jour de la semaine Oui 1-7 ou SUN-SAT , - * ? / L #
y Année Non Vide ou entre 1970 et 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 des minutes signifie "toutes les minutes".
? Utilisé pour spécifier un élément dans l'un des deux champs dans lesquels le caractère est autorisé, mais pas dans l'autre. Par exemple, si vous souhaitez que le déclencheur s'exécute un jour précis du mois (le 10, par exemple), mais que le jour de la semaine n'a pas d'importance, spécifiez "10" dans le champ "Jour du mois" et "?" dans le champ "Jour de la semaine".
- Utilisé pour spécifier des plages. Par exemple, 10-12 dans le champ "Heure" signifie les heures 10, 11 et 12.
, Permet de spécifier des valeurs supplémentaires. Par exemple, "MON,WED,FRI" dans le champ du jour de la semaine signifie lundi, mercredi et vendredi.
/ Permet de spécifier les incréments. Par exemple, 0/15 dans le champ des secondes signifie les secondes 0, 15, 30 et 45. 5/15 dans le champ des secondes signifie les secondes 5, 20, 35 et 50. Vous pouvez également spécifier "/" après le caractère ". Cela équivaut à avoir un 0 avant le /. Spécifier 1/3 dans le champ "Jour du mois" signifie exécuter tous les trois jours à partir du premier jour du mois.
L Il a une signification différente dans chacun des deux champs dans lesquels il est autorisé. Dans le champ "Jour du mois", la lettre "L" signifie le dernier jour du mois (le 31 janvier ou le 28 février, par exemple, les années non bissextiles). Dans le champ "Jour de la semaine", L signifie le dernier jour de la semaine, c'est-à-dire 7 ou SAM. Toutefois, s'il est utilisé dans le champ "Jour de la semaine" après une autre valeur, il signifie le dernier jour xxx du mois. Par exemple, 6L signifie le dernier vendredi du mois.
W Permet de spécifier le jour ouvré (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 signifie le jour ouvré le plus proche du 15 du mois. Par exemple, si le 15 est un samedi, le déclencheur s'exécutera le vendredi 14. Si le 15 tombe un dimanche, le déclencheur s'exécutera le lundi 16. Si le 15 est un mardi, le paiement sera effectué le mardi 15. Toutefois, si vous spécifiez 1W pour le jour du mois et que le 1er jour du mois est un samedi, le déclencheur s'exécutera le lundi 3, car il ne "sautera" pas la limite des jours d'un mois. Le caractère W ne peut être spécifié que lorsque le jour du mois est un jour unique, et non une plage ou une liste de jours.
# Utilisé pour spécifier le n-ième jour XXX du mois. Par exemple, la valeur 6#3 dans le champ du jour de la semaine signifie le troisième vendredi du mois (jour 6 = vendredi et #3 = le troisième 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 en temps 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 pendant les années 2013, 2014 et 2015.
0 15 10 ? * 6#3 À 10h15 le troisième vendredi de chaque mois.

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

Vous pouvez afficher tous les jobs actuellement programmé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 un job planifié spécifique en envoyant une requête GET à /triggers/{trig_id}, où {trig_id} est l'identifiant du déclencheur de job, comme décrit dans Présentation des jobs planifiés. 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 les jobs planifiés à l'aide de l'API

Vous pouvez mettre à jour un job planifié 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 jobs de déclencheur Cron (c'est-à-dire les jobs qui incluent une valeur d'expression Cron), vous ne pouvez modifier que les valeurs des propriétés cronExpression et "enabled". Les autres modifications sont ignorées. Pour les jobs 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 un job planifié, envoyez une requête PUT à /triggers/{trig_id}, où {trig_id} correspond à l'identification du déclencheur de job, comme décrit dans Présentation des jobs planifiés. Lorsque vous effectuez la mise à jour, vous devez spécifier dans le corps de la requête les paramètres mis à jour et l'ID du déclencheur.

Par exemple, la requête suivante met à jour l'expression cron du job de renouvellement du forfait Nouveau développeur pour qu'il 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 un job planifié, 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 resynchroniser régulièrement la monétisation avec votre organisation, ainsi qu'avec les développeurs, applications et produits que vous avez créés à l'aide des services d'API Edge. Pour en savoir plus, consultez Synchroniser les données Apigee Edge avec la monétisation.