Diferencia entre revisiones de «Ejecuciones automaticas en Liferay»

De Dos Ideas.
Saltar a: navegación, buscar
(Página creada con '=== Crear una tarea automática (CRON)=== *1- Configurar el CRON en el archivo liferay-portlet.xml que se encuentra en la carpeta WEB-INF de nuestro proyecto: <portlet> <p…')
 
(Crear una tarea automática (CRON))
 
Línea 1: Línea 1:
 
=== Crear una tarea automática (CRON)===
 
=== 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:
 
*1- Configurar el CRON en el archivo liferay-portlet.xml que se encuentra en la carpeta WEB-INF de nuestro proyecto:
Línea 8: Línea 10:
 
   <scheduler-entry>
 
   <scheduler-entry>
 
     <scheduler-description>descripcion</scheduler-description>
 
     <scheduler-description>descripcion</scheduler-description>
     <scheduler-event-listener-class>com.connectis.tucu.cron.NotificacionCron</scheduler-event-listener-class> <!- Aca va la clase que contiene el CRON en el proyecto(con la lógica que ejecuta) ->
+
     <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 ->
 
     <trigger> <!- Configuración del tiempo para que corra el CRON ->
 
       <simple-trigger-value>15</simple-trigger-value>  
 
       <simple-trigger-value>15</simple-trigger-value>  
Línea 18: Línea 20:
 
*2- Creamos la clase CRON con la lógica que ejecutará (es necesario que implemente la interfaz [http://docs.liferay.com/portal/6.0/javadocs/com/liferay/portal/kernel/messaging/MessageListener.html MessageListener] de Liferay):
 
*2- Creamos la clase CRON con la lógica que ejecutará (es necesario que implemente la interfaz [http://docs.liferay.com/portal/6.0/javadocs/com/liferay/portal/kernel/messaging/MessageListener.html MessageListener] de Liferay):
  
  package com.connectis.tucu.cron;
+
  package com.MiClaseCron;
 
  import com.liferay.portal.kernel.messaging.Message;
 
  import com.liferay.portal.kernel.messaging.Message;
 
  import com.liferay.portal.kernel.messaging.MessageListener;
 
  import com.liferay.portal.kernel.messaging.MessageListener;
Línea 28: Línea 30:
 
  }
 
  }
  
''' Tener en cuenta que el CRON al momento en que corre deberá levantar el contexto, esto puede traer inconvenientes al igual que las conexiones a la base de datos (nosotros optamos por cerrar la conexión cada vez que finalizamos una transacción con el CRON)'''.
+
''' 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.'''.

Revisión actual del 13:06 23 jul 2013

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..