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@@@ |
| 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@@@ |
| XeFeed Updater | Obtient le taux de change en dollars américains pour chaque devise acceptée. | Chaque jour à 00h01 | MINT.XEFEED@@@ |
| 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@@@ |
| 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@@@ |
| 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@@@ |
| 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@@@ |
| 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@@@ |
| 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@@@ |
| 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@@@ |
| 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@@@ |
| Actualiser la configuration de notification | Réindexe toutes les conditions de notification. | Toutes les 5 minutes | MINT.REFRESH_NOTIFICATION_CONFIG@@@ |
| Envoyer des notifications par e-mail | Envoie les notifications par e-mail accumulées | Toutes les heures | MINT.EMAIL_NOTIFICATION@@@ |
| 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@@@ |
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 |
MINT.NEW_PACKAGE_NOTIFY@@@ |
| 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 |
MINT.ADHOC_NOTIFY@@@ |
| 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 |
MINT.NEW_PRODUCT_NOTIFY@@@ |
| 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 :
|
Exécution à la date de début du nouveau forfait, à 4h30 du matin | MINT.NEW_RATEPLAN_NOTIFY@@@ |
| 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@@@ |
| 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@@@ |
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 :
- Configurer des déclencheurs
- Créer des expressions Cron
- Afficher les jobs planifiés à l'aide de l'API
- Mettre à jour les jobs planifiés à l'aide de l'API
- Désactiver et réactiver un job planifié à 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 |
enabled |
Indicateur qui indique si le déclencheur est activé pour l'exécution. La valeur peut être l'une des suivantes :
|
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 |
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.
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.