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();
}
}
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:
Post a Comment