如某个的调度是在某个portlet中使用的,则可以使用一面的方法:

1、  编写一个类,实现接口:com.liferay.portal.kernel.messageing.MessageListener。如下图所示。其中的doReceive()方法是定时执行的内容。

基于Portlet的调度任务

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()方法。


相关文章:

  • 2021-04-04
  • 2022-01-08
  • 2021-09-03
  • 2022-03-02
  • 2022-02-07
  • 2021-11-14
  • 2022-12-23
猜你喜欢
  • 2022-01-02
  • 2022-12-23
  • 2021-12-29
  • 2022-12-23
  • 2022-12-23
  • 2021-07-06
  • 2021-09-02
相关资源
相似解决方案