Pianificare job di monetizzazione

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Panoramica dei job pianificati

La monetizzazione fornisce uno scheduler dei job e un insieme di job prepianificati per l'esecuzione in orari designati.

La tabella seguente elenca i job prepianificati forniti dalla monetizzazione e gli orari di esecuzione pianificati (tutti gli orari indicati sono in UTC). Viene inoltre elencato il trigger per ciascun job.

Lavoro Descrizione Programmazione (UTC) Trigger
Aliquota fiscale mensile dello sviluppatore Recupera l'aliquota fiscale dal motore fiscale per ogni sviluppatore e aggiorna la persona giuridica sviluppatore con l'aliquota fiscale modificata. Il primo giorno di ogni mese alle 05:45 MINT.MONTHLY_DEV_TAXRATE@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Rinnova abbonamento Applica tariffe ricorrenti per i piani tariffari attivi o nuove tariffe per i piani tariffari futuri che iniziano nel giorno corrente. Ogni giorno di 5 secondi dopo la mezzanotte MINT.RENEW_SUBSCRIPTIONS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Strumento di aggiornamento XeFeed Restituisce il tasso di cambio in dollari USA per ogni valuta supportata. Ogni giorno di 1 secondo dopo la mezzanotte MINT.XEFEED@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Rinnova piano tariffario sviluppatore Passa le date di rinnovo di un piano tariffario e calcola i costi di risoluzione anticipata. Tutti i giorni alle 2:20 MINT.RENEW_DEV_RATEPLAN@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Riprova inoltro transazione Nota: questo job è stato deprecato e non ha alcun impatto sulla monetizzazione. Tutti i giorni alle 4:30 MINT.RETRY_TX_RELAY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Pulizia transazioni Nota: questo job è stato deprecato e non ha alcun impatto sulla monetizzazione. Tutti i giorni alle 05:30 MINT.TX_CLEANSER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Controllo saldo sviluppatori Controlla il saldo dell'account sviluppatore. Copia l'utilizzo corrente e il limite di credito prepagato/saldo prepagato in una tabella di controllo, poi detrae l'utilizzo corrente dall'account sviluppatore e restituisce il saldo di utilizzo a zero. Primo giorno di ogni mese cinque secondi dopo la mezzanotte MINT.DEVELOPER_BALANCE_AUDIT@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Documenti sulla fatturazione mensile Genera documenti di fatturazione.

Nota: Apigee non supporta più la generazione di documenti di fatturazione dalla monetizzazione Apigee Edge. Vedi Ritiri.

L'11° giorno di ogni mese a 1 minuto dopo mezzanotte MINT.MONTLY_BILLING_DOCS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Contatore piano tariffario sviluppatore Nota: questo job è stato deprecato e non ha alcun impatto sulla monetizzazione. Ogni giorno di 3 secondi dopo la mezzanotte 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 per il giorno precedente. Tutti i giorni all'1:20 MINT.CHARGE_DAILY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Addebiti orari Calcola tutti i totali delle transazioni per ogni trimestre d'ora. 1 minuto dopo ogni quarto d'ora MINT.CHARGE_HOURLY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Aggiorna configurazione delle 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
Limite di aggiornamento Nota: questo job è stato deprecato e non ha alcun impatto sulla monetizzazione. N/D (non viene mai eseguita) MINT.REFRESH_LIMIT@@@
message-processor@@@SYSTEM@@@
message-processor@@@SYSTEM

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

Job Descrizione Programmazione Trigger
Notifica nuovo pacchetto Invia una notifica a tutti gli sviluppatori quando è disponibile un nuovo pacchetto API. Viene eseguito una volta: il giorno in cui il job viene abilitato alle 21:00.

Nota: le notifiche vengono inviate una sola volta, indipendentemente dal fatto che venga configurato un cronExpression che determina 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 per comunicare che nuovi prodotti basati su API sono disponibili in mercati geografici specifici. Viene eseguito una volta: il giorno in cui il job viene abilitato alle 21:00.

Nota: le notifiche vengono inviate una sola volta, indipendentemente dal fatto che venga configurato un cronExpression che determina 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 quando è disponibile un nuovo prodotto API. Viene eseguito una volta: il giorno in cui il job viene abilitato alle 21:00.

Nota: le notifiche vengono inviate una sola volta, indipendentemente dal fatto che venga configurato un cronExpression che determina 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 che informa della disponibilità di un nuovo piano tariffario. Tutti gli sviluppatori abbonati al piano tariffario principale vengono informati dell'attivazione di 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 di categoria sviluppatore, 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.
Deve essere pubblicata il giorno di inizio del nuovo piano tariffario alle 04:30. MINT.NEW_RATEPLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Nuovo Tnc Invia agli sviluppatori interessati una notifica che comunica che i Termini e condizioni nuovi o aggiornati sono stati pubblicati (e lo sviluppatore non li ha ancora accettati). Valida 30, 7 e 1 giorno prima della data di inizio dei Termini e condizioni nuovi o aggiornati, alle 21:00. MINT.TNC_ACCEPTANCE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Piano tariffario in scadenza Invia una notifica agli sviluppatori interessati per avvisare in anticipo che un piano tariffario sta per scadere. Viene eseguito il 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 del job di monetizzazione tramite l'API

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

Per ulteriori informazioni sulle API descritte in questa sezione, consulta Job pianificati nel riferimento API.

Configurazione dei trigger

Lo scheduler si basa sui trigger per eseguire i job. Un job pianificato viene eseguito quando viene eseguito il trigger associato. Le proprietà di un trigger configurano l'esecuzione del job. Impostando il valore di queste proprietà, puoi controllarne le caratteristiche, come l'esecuzione e la frequenza di un job.

I due tipi più comuni di trigger sono i attivatori cron e i attivatori semplici. Un trigger cron ha una proprietà cronExpression che specifica una pianificazione di esecuzione. Un trigger semplice non ha una proprietà cronExpression; devi specificare startTime per indicare quando l'attivatore entra in vigore e, facoltativamente, endTime.

Le proprietà degli attivatori sono le seguenti (tutti gli orari indicati sono in UTC):

Proprietà Descrizione
cronExpression Espressione cron per creare una pianificazione di esecuzione per il trigger, ad esempio: "Alle 8:00 ogni lunedì al venerdì" o "Alle 01:30 ogni ultimo venerdì del mese". Per ulteriori dettagli, consulta Creazione di espressioni cron.

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

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

enabled Flag che indica se è abilitata l'esecuzione del trigger. Il valore può essere uno dei seguenti:
  • true. L'attivatore è abilitato per l'esecuzione.
  • false. Il trigger è disabilitato e non verrà eseguito.
endTime Ora in formato epoch in cui la pianificazione dell'attivatore non è più attiva.
group Tipo di server in cui verrà eseguito l'attivatore. 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 dell'attivatore.
jobId Identificazione del job da eseguire.
name Nome univoco utilizzato per identificare l'attivatore.
priority Priorità di esecuzione relativa dei trigger se è pianificata l'esecuzione di più trigger contemporaneamente. Più basso è il valore, più alta è la priorità. Ad esempio, se due trigger sono programmati per essere eseguiti contemporaneamente e se un trigger ha priorità 1 e l'altro ha priorità 2, viene eseguito per primo il trigger con priorità 1.

Questa proprietà si applica solo se più trigger hanno esattamente la stessa durata di esecuzione.

startTime Si applica solo agli attivatori semplici.

Ora nel formato epoch in cui la pianificazione dell'attivatore entra in vigore.

Nota: se vengono 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 di livello predefinito. I valori validi sono DEFAULT o SYSTEM; in alternativa, puoi specificare un nome univoco per la 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 bianchi. L'espressione rappresenta un insieme di orari, solitamente come una pianificazione per l'esecuzione di una routine. Le espressioni cron specificate nella proprietà cronExpression di un trigger vengono utilizzate per pianificare l'esecuzione di questo trigger.

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

Dove:

Campo Descrizione Obbligatorie Valori consentiti Caratteri speciali consentiti
s Secondi 0-59 , - * /
m Minuti 0-59 , - * /
h Orari 0-23 , - * /
dm Giorno del mese 0-31 , - * ? / L O
m Mese 1-12 o GAN-DIC , - * /
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 indica ogni minuto.
? Consente di specificare qualcosa in uno dei due campi in cui è consentito il carattere, ma non nell'altro. Ad esempio, se vuoi che l'attivatore venga eseguito in un determinato giorno del mese (ad esempio, il 10), ma non ti interessa in quale giorno della settimana, specifica 10 nel campo del giorno del mese e ? nel campo del giorno della settimana.
- Utilizzato per specificare gli intervalli. Ad esempio, 10-12 nel campo delle ore 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. E 5/15 nel campo dei secondi indica i secondi 5, 20, 35 e 50. Puoi anche specificare / dopo il carattere ". Ciò equivale ad avere 0 prima della barra (/). Se specifichi 1/3 nel campo del 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 per gli anni non bisestili. Nel campo del giorno della settimana, L indica l'ultimo giorno della settimana, ovvero 7 o SAT. Tuttavia, se utilizzato nel campo del giorno della settimana dopo un altro valore, indica l'ultimo giorno del mese xxx. Ad esempio, 6L indica l'ultimo venerdì del mese.
W Utilizzato per specificare il giorno della settimana (lunedì-venerdì) più vicino al giorno specificato. Ad esempio, se specifichi 15 W nel campo del giorno del mese, questo indica il giorno feriale più vicino al 15 del mese. Quindi, se il 15 è sabato, il trigger verrà eseguito venerdì 14. Se il 15 è di domenica, il trigger verrà eseguito lunedì 16. Se il 15 è un martedì, verrà eseguita martedì 15. Tuttavia, se specifichi 1 W per il giorno del mese e il primo è un sabato, l'attivatore verrà eseguito lunedì 3 perché non"salterà" oltre il limite dei giorni del mese. Il carattere W può essere specificato solo quando il giorno del mese è un singolo giorno, non un intervallo o un elenco di giorni.
# Consente di specificare l'n° XXX giorno del mese. Ad esempio, il valore 6#3 nel campo del 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 indicati sono in UTC):

Espressione cron Pianificazione esecuzione
0 0 12 * * ? Tutti i giorni alle 12:00 (mezzogiorno).
0 15 10 * * ? 2013 10:15 tutti i giorni dell'anno 2013.
0 10,44 14 ? 3 MER alle 14:10 e alle 14:44 ogni mercoledì di marzo.
0 15 10 ? * 6L 2013-2015 10:15 l'ultimo venerdì di ogni mese negli anni 2013, 2014 e 2015.
0 15 10 ? * 6 n. 3 Alle 10:15 del terzo venerdì di ogni mese.

Visualizzazione dei job pianificati mediante 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 della 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 uno specifico job pianificato inviando una richiesta GET a /triggers/{trig_id}, dove {trig_id} è l'identificazione del trigger di job, come descritto in Panoramica dei job pianificati. 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 della 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 mediante l'API

Puoi aggiornare un job pianificato modificando le proprietà del relativo trigger. Ad esempio, potrebbe essere necessario modificare la pianificazione di esecuzione del trigger.

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

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

Ad esempio, la seguente richiesta aggiorna l'espressione cron del job di rinnovo del nuovo piano tariffario per 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

Disabilitare e riattivare un job pianificato utilizzando l'API

Per disabilitare un job pianificato, 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 riabilitare un job disabilitato, imposta il valore della proprietà enabled del relativo trigger su true.

Passaggi successivi

Ti consigliamo di risincronizzarti periodicamente con la monetizzazione della tua organizzazione e di eventuali sviluppatori, applicazioni e prodotti che hai creato utilizzando i servizi API Edge. Scopri come, in Sincronizzare i dati Apigee Edge con la monetizzazione.