Liferay:Job的实现

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>。


第一种貌似在代码管理方面有优势。一般建议使用第一种配置方法。


你可能感兴趣的:(quartz,String,Class,cron)