Liferay Schedule a job

来源:互联网 发布:入门级显示器知乎 编辑:程序博客网 时间:2024/05/19 02:03

Schedule is much easier than Message bus. Actually it uses Message Bus. We just need two steps to make it works.

1. Write a class implements MessageListener, in the class's receive method, we do our job.

import com.liferay.portal.kernel.messaging.Message;
import com.liferay.portal.kernel.messaging.MessageListener;
import com.liferay.portal.kernel.messaging.MessageListenerException;

public class MyScheduler implements MessageListener{
@Override
public void receive(Message arg0) throws MessageListenerException {
System.out.println("My Schedule has served...");
}
}


2. configure in liferay-portlet.xml, we set the details of scheduler like time, we can use two ways, simple or cron. Both of them works well, I prefer Cron. You can put it after <icon> node.

<scheduler-entry>
<scheduler-event-listener-class>com.rujuan.book.controller.MyScheduler</scheduler-event-listener-class>
<trigger>
<simple>
<simple-trigger-value>1</simple-trigger-value>
<time-unit>minute</time-unit>
</simple>
<!--<cron>
<cron-trigger-value>0 0/1 * * * ?</cron-trigger-value>
</cron> -->
</trigger>
</scheduler-entry>

Now, all configuration are done! Wait for Magic.