参考文章出处:http://www.huqiwen.com/2012/10/22/liferay-6-1-development-study-11-use-scheduler/
按照以上文章的做法,会报一个xml的错误,解决办法是:
在在liferay-portlet.xml里面注册这个调度类,并按如下格式添加,示例代码如下
<portlet>
<portlet-name>news-portlet</portlet-name>
<icon>/icon.png</icon>
<!--<scheduler-entry>放在<icon>下面-->
<scheduler-entry>
<scheduler-event-listener-class>
xxx.cmsnewsgather.NewsGatherMessageListener(上面此类的全路径)
</scheduler-event-listener-class>
<trigger>
<simple>
<simple-trigger-value>30</simple-trigger-value>
<time-unit>second</time-unit>
</simple>
</trigger>
</scheduler-entry>
<instanceable>false</instanceable>
<header-portlet-css>/css/main.css</header-portlet-css>
<footer-portlet-javascript>
/js/main.js
</footer-portlet-javascript>
<css-class-wrapper>news-portlet</css-class-wrapper>
</portlet>
这样就不会报xml错误了,各标签的作用说明如下:
scheduler-event-listener-class:里面的类为第一步里面编写的类
simple-trigger-value:里面为调度周期的数值,time-unit为调度周期的单位。上面的意思为每15分钟执行一次。此时间也可以从配置文件中读取。则将此 标签完成<property-key>newsgather.gather.time</property-key>,其中的newsgather.gather.time为属性文件(portal.properties)里面配置的值
Time-unit:表示周期的周期可以为:day、hour、minute、second、week这几个单位。
3、 上面的代码即完成了一个调度器的开始,内容为每15分钟执行一次第一步类里面的doReceive()方法。