如某个的调度是在某个portlet中使用的,则可以使用一面的方法:
1、 编写一个类,实现接口:com.liferay.portal.kernel.messageing.MessageListener。如下图所示。其中的doReceive()方法是定时执行的内容。
2、 在liferay-portlet.xml里面注册这个调度类,添加如下代码:
<scheduler-entry>
<scheduler-event-listener-class>
xxx.cmsnewsgather.NewsGatherMessageListener(上面此类的全路径)
</scheduler-event-listener-class>
<trigger>
<simple>
<simple-trigger-value>15</simple-trigger-value>
<time-unit>minute</time-unit>
</simple>
</trigger>
</scheduler-entry>
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()方法。