参考文章出处: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()方法。