PlayFramework 2 中的工作3.X
Jobs in PlayFramework 2.3.X
我需要在我的 PlayFramework 2.3.X 服务器上执行后台任务(检查数据库状态并根据此状态执行操作)。
为此,我看到 Play 在其早期版本中曾经使用 Jobs
(here)。我想做同样的事情,但无法弄清楚处理这个问题的新方法是什么。
Ps: 我知道这样做不是一件好事,但我必须执行这个后台任务。如果您找到更好的方法,请随时告诉我。
谢谢!
编辑
我使用 Java Akka 尝试类似的操作,但我错过了一个参数。有什么建议吗?
public static void test(){
Akka.system().scheduler().schedule (
Duration.create(0, TimeUnit.MILLISECONDS), // initial delay
Duration.create(5, TimeUnit.MINUTES), // run job every 5 minutes
new Runnable() {
public void run() {
Logger.info("job is done");
}
};
);
}
试试这个:
Runnable task = new Runnable() {
@Override
public void run() {
//your jobs
}
};
Akka.system().scheduler().schedule(FiniteDuration.create(0, TimeUnit.SECONDS), FiniteDuration.create(1, TimeUnit.SECONDS), task, Akka.system().dispatcher());
我需要在我的 PlayFramework 2.3.X 服务器上执行后台任务(检查数据库状态并根据此状态执行操作)。
为此,我看到 Play 在其早期版本中曾经使用 Jobs
(here)。我想做同样的事情,但无法弄清楚处理这个问题的新方法是什么。
Ps: 我知道这样做不是一件好事,但我必须执行这个后台任务。如果您找到更好的方法,请随时告诉我。
谢谢!
编辑
我使用 Java Akka 尝试类似的操作,但我错过了一个参数。有什么建议吗?
public static void test(){
Akka.system().scheduler().schedule (
Duration.create(0, TimeUnit.MILLISECONDS), // initial delay
Duration.create(5, TimeUnit.MINUTES), // run job every 5 minutes
new Runnable() {
public void run() {
Logger.info("job is done");
}
};
);
}
试试这个:
Runnable task = new Runnable() {
@Override
public void run() {
//your jobs
}
};
Akka.system().scheduler().schedule(FiniteDuration.create(0, TimeUnit.SECONDS), FiniteDuration.create(1, TimeUnit.SECONDS), task, Akka.system().dispatcher());