Pianificare job di monetizzazione

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

Panoramica dei job pianificati

La monetizzazione fornisce uno scheduler di job e un insieme di job pre-pianificati per essere eseguiti in orari designati.

La tabella seguente elenca i job pianificati forniti dalla monetizzazione e gli orari in cui sono programmati per l'esecuzione (tutti gli orari elencati sono in formato UTC). Viene elencato anche il trigger per ogni job.

Job Descrizione Programmazione (UTC) Trigger
Tasso di imposta mensile per gli sviluppatori Recupera l'aliquota fiscale dal motore fiscale per ogni sviluppatore e aggiorna l'entità sviluppatore con l'aliquota fiscale rivista. Il primo giorno di ogni mese alle 05:45 MINT.MONTHLY_DEV_TAXRATE@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Rinnova abbonamento Applica commissioni ricorrenti per i piani tariffari attivi o nuove commissioni per i piani tariffari futuri che iniziano il giorno corrente. Tutti i giorni alle 00:00:05 MINT.RENEW_SUBSCRIPTIONS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
XeFeed Updater Ottiene il tasso di cambio in dollari statunitensi per ogni valuta supportata. Tutti i giorni all'1 secondo dopo mezzanotte MINT.XEFEED@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Rinnova il piano tariffario per sviluppatori Posticipa le date di rinnovo per un piano tariffario e calcola le penali per recesso anticipato. Ogni giorno alle 02:20 MINT.RENEW_DEV_RATEPLAN@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Riprova il relay della transazione Nota: questo job è stato ritirato e non ha alcun impatto sulla monetizzazione. Ogni giorno alle 04:30 MINT.RETRY_TX_RELAY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Transaction Cleanser Nota: questo job è stato ritirato e non ha alcun impatto sulla monetizzazione. Ogni giorno alle 05:30. MINT.TX_CLEANSER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Controllo del saldo dello sviluppatore Controlla il saldo dell'account sviluppatore. Copia l'utilizzo corrente e il saldo prepagato/il limite di credito postpagato in una tabella di controllo, quindi detrae l'utilizzo corrente dall'account sviluppatore e riporta il saldo di utilizzo a zero. Il primo giorno di ogni mese alle ore 00:00:05 MINT.DEVELOPER_BALANCE_AUDIT@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Documenti di fatturazione mensile Genera i documenti di fatturazione.

Nota: Apigee non supporta più la generazione di documenti di fatturazione da Apigee Edge Monetization. Consulta la sezione Ritiri.

L'11° giorno di ogni mese alle 00:01 MINT.MONTLY_BILLING_DOCS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Contatore del piano tariffario per sviluppatori Nota: questo job è stato ritirato e non ha alcun impatto sulla monetizzazione. Ogni giorno alle 00:00:03 MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Addebiti giornalieri Ricalcola tutti i totali orari delle transazioni e li utilizza per calcolare i totali giornalieri del giorno precedente. Ogni giorno alle 01:20 MINT.CHARGE_DAILY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Addebiti orari Calcola tutti i totali delle transazioni per ogni quarto d'ora. 1 minuto dopo ogni quarto d'ora MINT.CHARGE_HOURLY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Aggiorna configurazione notifiche Reindicizza tutte le condizioni di notifica. Ogni 5 minuti MINT.REFRESH_NOTIFICATION_CONFIG@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Invia notifiche email Invia notifiche email accumulate Ogni ora MINT.EMAIL_NOTIFICATION@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Aggiorna limite Nota: questo job è stato ritirato e non ha alcun impatto sulla monetizzazione. N/A (mai eseguito) MINT.REFRESH_LIMIT@@@
message-processor@@@SYSTEM@@@
message-processor@@@SYSTEM

Oltre ai job elencati sopra, esistono job che puoi attivare tramite le notifiche di eventi, come indicato nella tabella seguente. Per ulteriori informazioni, vedi Configurare le notifiche.

Job Descrizione Pianificazione Trigger
Notifica di nuovo pacchetto Invia una notifica a tutti gli sviluppatori per informarli che è disponibile un nuovo pacchetto API. Viene eseguito una volta, il giorno in cui il job viene attivato alle 21:00.

Nota: le notifiche vengono inviate una sola volta, indipendentemente dal fatto che tu configuri un cronExpression che comporta l'esecuzione del job più volte.

MINT.NEW_PACKAGE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Nuova notifica ad hoc Invia una notifica a tutti gli sviluppatori che nuovi prodotti API sono disponibili in mercati geografici specifici. Viene eseguito una volta, il giorno in cui il job viene attivato alle 21:00.

Nota: le notifiche vengono inviate una sola volta, indipendentemente dal fatto che tu configuri un cronExpression che comporta l'esecuzione del job più volte.

MINT.ADHOC_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Notifica di nuovo prodotto Invia una notifica a tutti gli sviluppatori per informarli che è disponibile un nuovo prodotto basato su API. Viene eseguito una volta, il giorno in cui il job viene attivato alle 21:00.

Nota: le notifiche vengono inviate una sola volta, indipendentemente dal fatto che tu configuri un cronExpression che comporta l'esecuzione del job più volte.

MINT.NEW_PRODUCT_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Notifica nuovo piano tariffario

Invia una notifica agli sviluppatori interessati per informarli che è disponibile un nuovo piano tariffario. Tutti gli sviluppatori abbonati al piano tariffario principale ricevono una notifica che li informa che è attivo un nuovo piano tariffario.

Inoltre:

  • Se il piano tariffario è un piano standard, tutti gli sviluppatori riceveranno una notifica.
  • Se si tratta di un piano tariffario per categoria di sviluppatori, solo gli sviluppatori di quella categoria riceveranno una notifica.
  • Se si tratta di un piano tariffario per sviluppatori, solo lo sviluppatore specifico riceverà una notifica.
Viene eseguito alla data di inizio del nuovo piano tariffario, alle 04:30. MINT.NEW_RATEPLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
New Tnc Invia una notifica agli sviluppatori interessati che sono stati pubblicati Termini e condizioni nuovi o rivisti (e che non sono ancora stati accettati). Vengono inviati 30, 7 e 1 giorno prima della data di inizio dei nuovi Termini e condizioni o di quelli rivisti, alle ore 21:00. MINT.TNC_ACCEPTANCE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Piano tariffario in scadenza Invia una notifica agli sviluppatori interessati per avvisarli in anticipo che un piano tariffario sta per scadere. Viene eseguito 30, 7 e 1 giorno prima della scadenza del piano tariffario, alle 21:00. MINT.EXPIRING_RATE_PLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT

Gestione della pianificazione dei job di monetizzazione utilizzando l'API

Le sezioni seguenti descrivono come gestire la pianificazione dei job di monetizzazione utilizzando l'API:

Per saperne di più sulle API descritte in questa sezione, consulta Scheduled jobs nel riferimento API.

Configurazione dei trigger

Lo scheduler si basa sui trigger per eseguire i job. Un job programmato viene eseguito quando viene attivato il trigger associato. Le proprietà di un trigger configurano l'esecuzione del job e, impostando il valore di queste proprietà, puoi controllare le caratteristiche dell'esecuzione del job, ad esempio quando e con quale frequenza viene eseguito un job.

I due tipi più comuni di attivatori sono gli attivatori cron e gli attivatori semplici. Un trigger cron ha una proprietà cronExpression che specifica una pianificazione delle esecuzioni. Un trigger semplice non ha una proprietà cronExpression; devi specificare startTime per indicare quando il trigger entra in vigore e facoltativamente endTime.

Le proprietà del trigger sono le seguenti (tutti gli orari elencati sono in formato UTC):

Proprietà Descrizione
cronExpression Espressione cron per creare una pianificazione delle esecuzioni per il trigger, ad esempio: "Alle 8:00 ogni lunedì, martedì, mercoledì, giovedì e venerdì" o "Alle 1:30 ogni ultimo venerdì del mese". Per ulteriori dettagli, consulta la sezione Creazione di espressioni cron.

Se specifichi questa proprietà, il trigger viene definito come trigger cron.

Nota: se vengono specificati sia cronExpression che startTime/endTime, cronExpression ha la precedenza.

enabled Flag che indica se il trigger è abilitato per l'esecuzione. Il valore può essere uno dei seguenti:
  • true. Il trigger è abilitato per l'esecuzione.
  • false. Il trigger è disabilitato e non verrà eseguito.
endTime Ora in formato epoch in cui la pianificazione del trigger non è più in vigore.
group Tipo di server in cui verrà eseguito il trigger. Ad esempio, se il trigger deve essere eseguito in un server di gestione, il valore deve essere impostato su management-server. Se il trigger deve essere eseguito in un server di elaborazione dei messaggi, il valore deve essere impostato su message-processor.
id Identificazione del trigger.
jobId Identificazione del job da eseguire.
name Nome univoco utilizzato per identificare l'attivatore.
priority Priorità di esecuzione relativa dei trigger se sono pianificati più trigger da eseguire contemporaneamente. Più basso è il valore, maggiore è la priorità. Ad esempio, se due trigger sono pianificati per l'esecuzione contemporanea e se un trigger ha priorità 1 e l'altro priorità 2, il trigger con priorità 1 viene eseguito per primo.

Questa proprietà si applica solo se più trigger hanno esattamente lo stesso orario di esecuzione.

startTime Si applica solo ai trigger semplici.

Ora in formato epoca in cui entra in vigore la pianificazione del trigger.

Nota: se sono specificati sia cronExpression che startTime/endTime, cronExpression ha la precedenza.

suiteId Flag che specifica se la notifica fa parte della suite di notifiche a livello di sistema o predefinita. I valori validi sono DEFAULT o SYSTEM oppure puoi specificare il nome univoco della tua suite.
triggerDataMap Chiave di blocco, custom_lock_key, che impedisce a più server di eseguire lo stesso job contemporaneamente.

Creazione di espressioni cron

Un'espressione cron è una stringa composta da sei o sette campi separati da spazi vuoti. L'espressione rappresenta un insieme di orari, in genere come pianificazione per eseguire una routine. Le espressioni cron specificate nella proprietà cronExpression di un attivatore vengono utilizzate per pianificare l'esecuzione dell'attivatore.

Un'espressione cron ha il seguente formato: s m h dm m dw y

Dove:

Campo Descrizione Obbligatorio Valori consentiti Caratteri speciali consentiti
s Secondi 0-59 , - * /
m Minuti 0-59 , - * /
h Ore 0-23 , - * /
dm Giorno del mese 0-31 , - * ? / L W
m Mese 1-12 o JAN-DEC , - * /
dw Giorno della settimana 1-7 o SUN-SAT , - * ? / L #
y Anno No Vuoto o 1970-2099 , - * /

I caratteri speciali sono definiti come segue:

Carattere speciale Descrizione
* Utilizzato per selezionare tutti i valori all'interno di un campo. Ad esempio, * nel campo dei minuti significa ogni minuto.
? Utilizzato per specificare qualcosa in uno dei due campi in cui il carattere è consentito, ma non nell'altro. Ad esempio, se vuoi che il trigger venga eseguito in un determinato giorno del mese (ad esempio il 10), ma non ti interessa il giorno della settimana, specifica 10 nel campo del giorno del mese e ? nel campo Giorno della settimana.
- Utilizzato per specificare gli intervalli. Ad esempio, 10-12 nel campo dell'ora indica le ore 10, 11 e 12.
, Utilizzato per specificare valori aggiuntivi. Ad esempio, MON,WED,FRI nel campo del giorno della settimana indica i giorni lunedì, mercoledì e venerdì.
/ Utilizzato per specificare gli incrementi. Ad esempio, 0/15 nel campo dei secondi indica i secondi 0, 15, 30 e 45. 5/15 nel campo dei secondi indica i secondi 5, 20, 35 e 50. Puoi anche specificare / dopo il carattere ". In questo modo è come se ci fosse uno 0 prima della barra. Se specifichi 1/3 nel campo Giorno del mese, l'esecuzione avviene ogni 3 giorni a partire dal primo giorno del mese.
L Ha un significato diverso in ciascuno dei due campi in cui è consentito. L nel campo del giorno del mese indica l'ultimo giorno del mese, ovvero il giorno 31 per gennaio o il giorno 28 per febbraio negli anni non bisestili. Nel campo del giorno della settimana, L indica l'ultimo giorno della settimana, ovvero 7 o SAB. Se utilizzato nel campo del giorno della settimana dopo un altro valore, indica l'ultimo giorno xxx del mese. Ad esempio, 6L indica l'ultimo venerdì del mese.
M Utilizzato per specificare il giorno feriale (da lunedì a venerdì) più vicino al giorno indicato. Ad esempio, se specifichi 15W nel campo del giorno del mese, significa il giorno feriale più vicino al 15 del mese. Quindi, se il 15 è un sabato, il trigger verrà eseguito venerdì 14. Se il 15 è una domenica, il trigger verrà eseguito lunedì 16. Se il 15 è un martedì, il pagamento verrà eseguito martedì 15. Tuttavia, se specifichi 1W per il giorno del mese, e il 1° è un sabato, il trigger verrà eseguito lunedì 3 perché non "salterà" oltre il limite dei giorni di un mese. Il carattere W può essere specificato solo quando il giorno del mese è un singolo giorno, non un intervallo o un elenco di giorni.
# Utilizzata per specificare l'ennesimo giorno XXX del mese. Ad esempio, il valore 6#3 nel campo giorno della settimana indica il terzo venerdì del mese (giorno 6 = venerdì e #3 = il terzo del mese). Altri esempi: 2#1 = il primo lunedì del mese, 4#5 = il quinto mercoledì del mese.

Ecco alcuni esempi di espressioni cron (tutti gli orari elencati sono in UTC):

Espressione cron Pianificazione delle esecuzioni
0 0 12 * * ? Alle 12:00 (mezzogiorno) ogni giorno.
0 15 10 * * ? 2013 Alle 10:15 ogni giorno dell'anno 2013.
0 10,44 14 ? 3 MER Alle 14:10 e alle 14:44 ogni mercoledì del mese di marzo.
0 15 10 ? * 6L 2013-2015 Ore 10:15 dell'ultimo venerdì di ogni mese negli anni 2013, 2014 e 2015.
0 15 10 ? * 6#3 Alle 10:15 del terzo venerdì di ogni mese.

Visualizzazione dei job pianificati utilizzando l'API

Puoi visualizzare tutti i job attualmente pianificati inviando una richiesta GET a /triggers?orgid={org_name}.

Ad esempio:

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

Di seguito è riportato un esempio di risposta:

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

Puoi anche visualizzare un job programmato specifico inviando una richiesta GET a /triggers/{trig_id}, dove {trig_id} è l'identificazione del trigger del job, come descritto in Panoramica dei job programmati. Ad esempio:

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

Di seguito è riportato un esempio di risposta:

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

Aggiornamento dei job pianificati utilizzando l'API

Puoi aggiornare un job programmato modificando le proprietà del relativo trigger. Ad esempio, potresti dover modificare la pianificazione dell'esecuzione del trigger.

Per i job di attivazione cron (ovvero i job che includono un valore di espressione cron), puoi modificare solo i valori delle proprietà cronExpression e enabled. Le altre modifiche vengono ignorate. Per i job che non specificano un valore di espressione cron, puoi modificare altre proprietà come startTime o priority.

Per aggiornare un job programmato, invia una richiesta PUT a /triggers/{trig_id}, dove {trig_id} è l'identificazione del trigger del job, come descritto in Panoramica dei job programmati. Quando esegui l'aggiornamento, devi specificare nel corpo della richiesta le impostazioni aggiornate e l'ID del trigger.

Ad esempio, la seguente richiesta aggiorna l'espressione cron per il job di rinnovo del piano tariffario per i nuovi sviluppatori in modo che venga eseguito ogni giorno alle 05:00 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

Disattivazione e riattivazione di un job programmato utilizzando l'API

Per disabilitare un job programmato, imposta il valore della proprietà enabled del relativo trigger su false. Ad esempio:

$ 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

Per riattivare un job disattivato, imposta il valore della proprietà enabled del relativo trigger su true.

Passaggi successivi

Ti consigliamo di eseguire periodicamente una nuova sincronizzazione con la monetizzazione della tua organizzazione e di tutti gli sviluppatori, le applicazioni e i prodotti che hai creato utilizzando Edge API Services. Scopri come in Sincronizzare i dati di Apigee Edge con la monetizzazione.