Implementazione di una classe Java per lavori personalizzati
Un lavoro personalizzato è un lavoro definito dall'utente che esegue una funzione. Viene implementata come una classe Java™ che può essere eseguita manualmente o in base a una pianificazione.
I lavori personalizzati devono essere distribuiti su ciascun OpenPages® Application Server e vengono caricati dinamicamente durante l'avvio.
- Creare una classe Java del lavoro personalizzata estendendo la seguente implementazione astratta:
com.ibm.openpages.api.scheduler.AbstractScheduledProcess - Aggiungere la classe a un file JAR. Utilizzare il file JAR per tutto il codice personalizzato. Distribuire il file JAR su ciascun server delle applicazioni OpenPages nella directory <OP_HOME>/aurora/op-ext-lib .
- Riavviare i server delle applicazioni OpenPages in modo che il lavoro personalizzato possa essere acquisito dal programma di caricamento classi dinamico.
- Utilizzare Scheduler per aggiungere un lavoro personalizzato che utilizzi la classe Java. Impostare i valori delle proprietà o i campi richiesti dal job personalizzato come input. Per ulteriori informazioni, consultare Definizione di un lavoro personalizzato.
Fornitura di informazioni di configurazione a un lavoro personalizzato
Perché un lavoro personalizzato sia utile, potrebbe richiedere informazioni di configurazione. Ad esempio, se ha bisogno di connettersi a un altro servizio, potrebbe aver bisogno di conoscere la chiave API. Questi valori sono definiti come elementi di configurazione nel lavoro personalizzato nello Scheduler e passati al lavoro personalizzato al runtime.
Gli item di configurazione sono coppie nome - valore stringa definite dall'utente.
Il lavoro personalizzato deve convalidare che le proprietà che prevede di trasmettere sono state inoltrate e che hanno valori validi.
Creazione della classe Java del lavoro personalizzato
L'unico requisito di una classe Java del lavoro personalizzato è che estende com.ibm.openpages.api.scheduler.AbstractScheduledProcess. Questo requisito viene convalidato quando il lavoro personalizzato viene definito nello Scheduler.
setName(). Ad esempio, questo codice crea un lavoro personalizzato denominato My
Custom Job:public class CustomJob extends AbstractScheduledProcess {
public CustomJob() {
super(ProcessConstants.TYPE_GENERAL);
setName("My Custom Job");
}AbstractScheduledProcess denominata execute deve essere implementata nella propria classe Java derivata. All'interno di questo metodo è dove si scrive la funzionalità eseguita dal lavoro personalizzato.void execute(){
//add your custom code here
}Per accedere ai valori di configurazione per il lavoro, richiamare:
this.jobDetail.getJobConfiguration();
Per ulteriori informazioni sull'API GRC OpenPages , che puoi utilizzare nei lavori personalizzati, vedi IBM OpenPages with Watson API Javadoc. Per i collegamenti al Javadoc, consultare la Documentazione APIOpenPages.
I messaggi di eccezione o di convalida possono essere generati da un lavoro personalizzato e visualizzati all'utente. Per visualizzare i messaggi, utilizzare:
throwException(String message, Throwable cause)
Utilizzare questo metodo per generare eccezioni e visualizzare un messaggio personalizzato agli utenti. Le eccezioni non rilevate o le eccezioni generate esplicitamente vengono registrate dall'applicazione, ma agli utenti viene visualizzato solo un messaggio di errore generale.
Impostazione di un timeout per il job
Il timeout predefinito per tutti i lavori del programma di pianificazione è definito nell'impostazione . È possibile sovrascrivere questa impostazione di timeout per un lavoro personalizzato.
Per impostare un timeout per un job personalizzato, è necessario il nome del job personalizzato, definito da setName() nel costruttore del job. Creare la seguente impostazione per definire il timeout: .
Ad esempio: .