How to create scheduler in portlet
Version Liferay-5.2.3
Using Liferay SDK, create a scheduler job in a portlet.
First create a class that contains actual task that needs to be executed:
Second write a class that implements Scheduler interface.
Last just register your scheduler in liferay-portlet.xml
Using Liferay SDK, create a scheduler job in a portlet.
First create a class that contains actual task that needs to be executed:
package com.portlet;
import com.liferay.portal.kernel.job.IntervalJob;
import com.liferay.portal.kernel.job.JobExecutionContext;
import com.liferay.portal.kernel.job.JobExecutionException;
import com.liferay.portal.kernel.util.Time;
public class SyncDataJob implements IntervalJob{
public SyncDataJob() {
_interval = Time.DAY;
}
public long getInterval() {
return _interval;
}
public void execute(JobExecutionContext context)
throws JobExecutionException {
try {
System.out.println("THIS IS THE ACTUAL TASK!");
}
catch (Exception e) {
}
}
private long _interval;
}
Second write a class that implements Scheduler interface.
package com.portlet.struts;
import com.portlet.SyncDataJob;
import com.liferay.portal.kernel.job.JobSchedulerUtil;
import com.liferay.portal.kernel.job.Scheduler;
public class EventHistoricoAction implements Scheduler {
public void schedule() {
JobSchedulerUtil.schedule(_testIntervalJob);
}
public void unschedule() {
JobSchedulerUtil.unschedule(_testIntervalJob);
}
private SyncDataJob _testIntervalJob = new SyncDataJob();
}
Last just register your scheduler in liferay-portlet.xml
<liferay-portlet-app>
<portlet>
<portlet-name>eventosSearch-portlet</portlet-name>
<scheduler-class>com.portlet.struts.EventHistoricoAction</scheduler-class>
</portlet>
<role-mapper>
<role-name>administrator</role-name>
<role-link>Administrator</role-link>
</role-mapper>
</liferay-portlet-app>

Post a Comment