首页 > 解决方案 > 使用 liferay 6.1 安排工作

问题描述

我正在引用此链接链接

用liferay安排我的工作。

我添加了 Job Scheduler 类,它是:-

import com.liferay.portal.kernel.messaging.Message;
import com.liferay.portal.kernel.messaging.MessageListener;
import com.liferay.portal.kernel.messaging.MessageListenerException;

public class SchedulerLiferay implements MessageListener {

    @Override
    public void receive(Message arg0) throws MessageListenerException {
        System.out.println("hello world");

    }

}

在我的 liferay portlet.xml 文件中,我添加了:-

<portlet>
        <portlet-name>quartz-demo</portlet-name>
        <icon>/icon.png</icon>
        <scheduler-entry>
            <scheduler-event-listener-class>com.infinite.npsc.Job.SchedulerLiferay</scheduler-event-listener-class>
            <trigger>
                <!-- <simple>
                    <simple-trigger-value>
                        5
                    </simple-trigger-value>
                    <time-unit>second</time-unit>
                </simple> -->
                <cron>
                    <cron-trigger-value>0/5 * * * * ?</cron-trigger-value>
                </cron>
            </trigger>
        </scheduler-entry>
        <header-portlet-css>/css/main.css</header-portlet-css>
        <footer-portlet-javascript>/js/main.js</footer-portlet-javascript>
        <css-class-wrapper>quartz-demo-portlet</css-class-wrapper>
    </portlet>

我还在我的portlet.xml 文件中添加了这个 portlet,如下所示:-

<portlet>
        <portlet-name>quartz-demo</portlet-name>
        <display-name>Quartz Demo</display-name>
        <portlet-class>com.liferay.util.bridges.mvc.MVCPortlet</portlet-class>
        <init-param>
            <name>view-template</name>
            <value>/view.jsp</value>
        </init-param>
        <expiration-cache>0</expiration-cache>
        <supports>
            <mime-type>text/html</mime-type>
        </supports>
        <portlet-info>
            <title>Quartz Demo</title>
            <short-title>Quartz Demo</short-title>
            <keywords>Quartz Demo</keywords>
        </portlet-info>
        <security-role-ref>
            <role-name>administrator</role-name>
        </security-role-ref>
        <security-role-ref>
            <role-name>guest</role-name>
        </security-role-ref>
        <security-role-ref>
            <role-name>power-user</role-name>
        </security-role-ref>
        <security-role-ref>
            <role-name>user</role-name>
        </security-role-ref>
    </portlet>

作业不会运行。应用程序成功启动,但没有任何反应。我希望hello world每 5 秒在控制台中打印一次。

标签: javaliferay-6job-scheduling

解决方案


Liferay Cron 调度器有点敏感,不接受每个值。

您可以使用它每分钟执行一次作业:

0 0/1 * 1/1 * ? *

http://www.cronmaker.com/上,你会得到一个 Liferay 接受的表达式。


推荐阅读