在游戏中启动预定作业

时间:2012-02-06 16:54:24

标签: playframework

我有一个这样的课程:

package jobs;

import play.jobs.Every;
import play.jobs.Job;

@Every("5s")
public class ScheduledJobs extends Job{

    @Override
    public void doJob(){
        System.out.println("Job's done");
    }

}

配置文件包含以下内容:

#Jobs executor
# ~~~~~~
# Size of the Jobs pool
play.jobs.pool=10

# Execution pool
# ~~~~~
# Default to 1 thread in DEV mode or (nb processors + 1) threads in PROD mode.
# Try to keep a low as possible. 1 thread will serialize all requests (very useful for  debugging purpose)
# play.pool=3

我的问题是如何让我每5秒开始一次这项工作?如果我创建一个ScheduledJobs实例并且我调用doJob它只运行一次。谢谢你的帮助。

编辑:

ScheduledJobs放在我的app目录中的一个作业包中。

我尝试了一切,但是作业没有执行(即使我尝试@OnApplicationStar或任何其他注释。工作就是没有开始。如果我调用new ScheduledJobs().now()我得到一个空指针异常play.jobs.Job.java第64行。(播放1.2.3)。 我需要很快解决这个问题。请帮帮我。

1 个答案:

答案 0 :(得分:1)

您无需在代码中调用任何内容即可使作业正常运行。在向服务器发出第一个Web请求后(假设它处于DEV模式),它将每隔5秒开始执行一次作业。