Ejecuciones automaticas en Liferay

De Dos Ideas.
Revisión del 13:06 23 jul 2013 de Emiliano.tebes (discusión | contribuciones) (Crear una tarea automática (CRON))
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Crear una tarea automática (CRON)

Para crear una tarea que se ejecute automáticamente vamos a valernos de un portlet que vamos a desplegar en el portal.

  • 1- Configurar el CRON en el archivo liferay-portlet.xml que se encuentra en la carpeta WEB-INF de nuestro proyecto:
<portlet>
  <portlet-name>NombreDelPortlet</portlet-name>
  <icon>/icon.png</icon>
  <scheduler-entry>
    <scheduler-description>descripcion</scheduler-description>
    <scheduler-event-listener-class>com.MiClaseCron</scheduler-event-listener-class> <!- Aca va la clase que contiene el CRON en el proyecto(con la lógica que ejecuta) ->
    <trigger> <!- Configuración del tiempo para que corra el CRON ->
      <simple-trigger-value>15</simple-trigger-value> 
      <time-unit>minute</time-unit>
    </trigger>
  </scheduler-entry> 
</portlet>
  • 2- Creamos la clase CRON con la lógica que ejecutará (es necesario que implemente la interfaz MessageListener de Liferay):
package com.MiClaseCron;
import com.liferay.portal.kernel.messaging.Message;
import com.liferay.portal.kernel.messaging.MessageListener;
import com.liferay.portal.kernel.messaging.MessageListenerException;
public class NotificacionCron implements MessageListener {
public void receive(Message arg0) throws MessageListenerException {
//Aca va la logica que se ejecutará.
}
}

En caso de usar Spring, tener en cuenta que el CRON al momento en que corre deberá levantar el contexto, lo cual podría traernos algún dolor de cabeza..