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.

Per implementare un job personalizzato, completare le seguenti attività:
  • 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.

Fornire un nome al lavoro personalizzato. Nel costruttore del lavoro, effettuare una chiamata a 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");
    }
Una singola API astratta da 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 Platform > Programma di pianificazione > > Timeout transazione predefinito . È 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: Piattaforma > Processi > <Custom_job_name> > Timeout transazione.

Ad esempio: Platform > Processi > My Custom Job > Timeout transazione.