Blog

Approfondimenti, eventi, formazione
Indietro

Liferay Staging, Export/Import e Background Task (parte 3)

Questo chiude il percorso di tre post che vuole mettere in mostra le nuove funzionalità della versione 6.2 di Liferay, focalizzandoci sulla gestione delle funzionalità di staging nel primo post, di export/import nel secondo post, di background task in questo post.

Anche i background task sono disponibili negli applicativi e nelle soluzioni realizzati da ViVieb. Se vuoi saperne di più contattaci!

 

Background task

Durante la fase di import / export, in caso di errore, l'unico modo per comprendere cosa fosse andato storto consisteva nell'analizzare il file di log. Da questa limitazione è nata l'idea di costruire un framework in grado di consentire l'esecuzione asincrona di task.

Questo framework si chiama Background Task, e la possibilità di utilizzare un procedimento asincrono per la pubblicazione dei dati da ambiente di staging ad ambiente reale, o per l'esportazione e l'importazione di contenuti in formato ".lar", fa leva su di esso.

Benché il Background Task venga utilizzato appositamente per lo staging, e sia strettamente legato ad esso, l'intento nelle future versioni di Liferay è di renderlo indipendente e meglio usabile da processi diversi dallo staging.

Background Task è anche il nome della nuova entità introdotta che risponde al framework, e della corrispondente tabella sul database, che si occupa di memorizzare tutte le informazioni che i task in esecuzione necessitano di mantenere.

Ecco alcuni esempi:

  • taskExecutorClassName: il nome della classe che implementa l'interfaccia BackgroundTaskExecutor
  • status: rappresenta lo stato corrente del task in esecuzione. Il valore delle costanti è esplicitato nel codice sorgente, all'interno della classe BackgroundTaskConstants
  • completed: è un flag che informa se il task è stato completato oppure no.
  • taskContextMap: tutte le variabili di contesto di cui il task necessita. Le informazioni sono memorizzate in formato JSON

L'entità Background Task memorizza tutte queste informazioni, ma non è a conoscenza della logica di business gestita dai processi in corso. Per ciascun Background Task memorizzato c'è però un riferimento alla classe che la implementa. A questo proposito, l'interfaccia BackgroundTaskExecutor implementa i seguenti metodi:

  • BackgroundTaskResult execute(BackgroundTask backgroundTask): Implementa la logica di business. Il valore di ritorno è un oggetto contenente la coppia "int status - String statusMessage" che ci informa sull'esito dell'esecuzione
  • BackgroundTaskStatusMessageTranslator getBackgroundTaskStatusMessageTranslator(): Un'altra caratteristica delle API fornite è consiste nella possibilità di inviare e ricevere messaggi di stato durante l'esecuzione del task. L'unica cosa da fare è inviare un oggetto messaggio al Message Bus di Liferay, ad una specifica destinazione denominata liferay/background_task_status, inserendo al suo interno l'identificativo del background task corrente associato alla chiave "backgroundTaskId"
  • String handleException(BackgroundTask backgroundTask, Exception e): Questo metodo viene invocato quando un'eccezione generica viene sollevata durante l'esecuzione di un task. Il valore di ritorno del metodo consiste nel messaggio che rappresenta lo stato dell'esecuzione corrente
  • boolean isSerial(): Se restituisce il valore "true", indica che soltanto un task di un determinato tipo può essere eseguito simultaneamente

System Event

L'entità System Event è stata introdotta per scopi di gestione di eventi amministrativi.

In quanto entità, ha una tabella corrispondente sul database (SystemEvent).

In ambito staging, è stata estesa per includere la funzionalità di tracciamento delle entità cancellate (cancellazione da cestino) in modo da poter riportare in ambiente live le cancellazioni fatte in ambiente di staging.

Si concludono i tre post che vogliono porre l'attenzione del lettore sulle nuove funzionalità di staging, export/import e background task di Liferay 6.2.

Se desideri conoscere meglio come utilizzare al meglio questi framework o come ViVieb li utilizza per realizzare le soluzioni enterprise contattaci!

 

Contatta ViVieb!

Campo obbligatorio.
Campo obbligatorio.
Campo obbligatorio.
Campo obbligatorio.
Testo da Identificare Rigene CAPTCHA Rigene CAPTCHA

Autori Autori

Cristina Pepe
Messaggi: 3
Stelle: 0
Data: 15/06/18
Graziano Liberati
Messaggi: 23
Stelle: 0
Data: 29/11/17
Redazione ViVieb
Messaggi: 29
Stelle: 0
Data: 02/05/16