Sunday, August 4, 2013

Creating a schedular in Liferay

This post will explain how to create a " Schedular " in Lifeay .
Mainly we create a schedular to perform a particular Task in Particular Time without any Action.
eg: we need trigger a mails daily at particular time or we need to trigger for every 12 hours.

Step 1:
 First you want to create a class ( Which is nothing bur your own schedular class) in your portlet inside the "src" folder.
     ex : i created the schedular class in src folder in the path "com.portal.product.scheduler.Scheduler"

Step 2:
Next you want to create a "schedular entry" to that particular portlet inside the liferay-portlet.xml

<liferay-portlet-app>
      <portlet>
            <portlet-name>product</portlet-name>
            <icon>/icon.png</icon>
            <scheduler-entry>
                   <scheduler-event-listener-class>com.portal.product.scheduler.Scheduler</scheduler-event-listener-class>// path of the schedular class which  u created in the first step
                    <trigger>
                               <simple>
<simple-trigger-value>12</simple-trigger-value>
<time-unit>hour</time-unit>
</simple>
                                <cron>
                                        <cron-trigger-value>  0 0 8 * * ? * </cron-trigger-value>
                                </cron>
                  </trigger>
            </scheduler-entry>
      </portlet>
</liferay-portlet-app>

Note: Either you want use  <simple>( to run for every 12 hours)  or  <cron> ( to run in particular ). here i am running the schedular on every day 8'o clock . To know detail about <cron> ( http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger    ,  http://www.cronmaker.com/  )

Step 3:  U have to write the Business Logic inside the schedular class

Scheduler.java

package com.portal.product.scheduler;

public class Scheduler implements MessageListener{

                public void receive(Message message) throws MessageListenerException {
              
                   // here u want to write the business logic based upon your requirement
                        dailyMail(); 
                }
               private void dailyMail() throws SystemException {
MailUtil.senddailyEmail();

}
}


No comments:

Liferay DXP JNDI Data Source Cofiguration

 This Blog will help us to learn about the JNDI Data Source Configuration in Liferay DXP. We have tested this with Liferay 7.3 with Tomcat. ...