job是我们系统中经常需要用到的东西,Liferay中已经集成了Quartz。要写一个自己的job非常方便。
参考既存代码中的写法,只需要继承MessageListener接口,实现其receive(Message message)方法即可。
1. 继承MessageListener接口
public class MyMessageListener implements MessageListener {
private static Log log = LogFactoryUtil.getLog(MyMessageListener.class);
private static String BATCH_NAME = "My Batch";
@Override
public void receive(Message message) {
doUserBatchDetail(message);
}
private void doUserBatchDetail(Message message) {
//具体实现
}
}
2. 在liferay-portlet.xml配置文件中设置启动信息
<scheduler-entry>
<scheduler-event-listener-class>com.xxx.xxx.MyMessageListener</scheduler-event-listener-class>
<trigger>
<cron>
<property-key>mybatch.cron</property-key>
<!-- <cron-trigger-value>1 1 * * * ?</cron-trigger-value> -->
</cron>
</trigger>
</scheduler-entry>
这个地方的启动时间有两种设置方法。
第一种是设置一个key,例如 <property-key>mybatch.cron</property-key>。然后在portal-ext.properties中设置具体的启动信息。mybatch.cron=1 1 * * * ?
第二种是直接设置启动信息。例如<cron-trigger-value>1 1 * * * ?</cron-trigger-value>。
第一种貌似在代码管理方面有优势。一般建议使用第一种配置方法。