java – 如何在play framework 2.3中编写cron job

前端之家收集整理的这篇文章主要介绍了java – 如何在play framework 2.3中编写cron job前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Play 2.3.8(激活器)& Mongodb为db

我在产品系列中有一些产品,每个产品都有有效期,一旦到期
我需要删除产品集合中的文档.

我正在计划编写cron作业来删除产品集合中的文档,这些文档将在特定时间每天运行.

我想我可以在java中使用像@ on,@ Everyvery这样的注释(我在java中编写代码,而不是在scala中编写代码).
但当我用Google搜索时,我得到了一些插件,工具或解决方

a)https://github.com/ssachtleben/play-plugins/tree/master/cron

b)Quartz Job schedule作为依赖玩2.3(激活器)

c)Akka异步工作(我不知道如何使用它,如何使用游戏,甚至我是Akka的新手)

我处于困惑状态,你能不能在下面给我建议

>我可以根据我的要求使用哪一个?
>我是否正确地完成了我的工作?
>有没有什么能在数据库级别完成我的工作?
提前致谢.

解决方法

这可以使用Global Class完成,并且可以使用onstart方法. https://www.playframework.com/documentation/2.5.x/JavaGlobal

下面给出编码的抽象视图.希望这有帮助

public class Global extends GlobalSettings {

private Cancellable scheduler;

@Override
public void onStart(Application application) {
    int timeDelayFromAppStartToLogFirstLogInMs = 0;
    int timeGapBetweenMemoryLogsInMinutes = 10;
    scheduler = Akka.system().scheduler().schedule(Duration.create(timeDelayFromAppStartToLogFirstLogInMs,TimeUnit.MILLISECONDS),Duration.create(timeGapBetweenMemoryLogsInMinutes,TimeUnit.MINUTES),new Runnable() {
                @Override
                public void run() {
                    System.out.println("Cron Job");
                    // Call a function (to print JVM stats)
                }
            },Akka.system().dispatcher());
    super.onStart(application);
}

@Override
public void onStop(Application app) {
    scheduler.cancel();
    super.onStop(app);
}

}
原文链接:https://www.f2er.com/java/120908.html

猜你在找的Java相关文章