是否从Play框架中删除了异步作业? 什么是更好的选择?

我想使用Job所以我可以在应用程序启动时启动它。 现在它似乎已完全从Play中删除了?

我看到一些人们创建Global类的示例,但不完全确定是否应该使用它来替换Job

有什么建议么?

编辑:如果你要投票,给出一个理由。 也许我在问题中遗漏了一些东西,也许这不属于这里。 至少有些东西……

在Play 2.0中删除了Job类。

您有一些替代方案,但取决于您的Play版本以及是否需要异步:

Akka演员

对于自Play 2.0以来的所有版本,您可以使用Akka Actors计划一次异步任务/ actor,并通过Play Global类在启动时执行它。

 public class Global extends GlobalSettings { @Override public void onStart(Application app) { Akka.system().scheduler().scheduleOnce( Duration.create(10, TimeUnit.MILLISECONDS), new Runnable() { public void run() { // Do startup stuff here initializationTask(); } }, Akka.system().dispatcher() ); } } 

有关详细信息,请参阅https://www.playframework.com/documentation/2.3.x/JavaAkka 。

渴望单身人士

从Play 2.4开始,你可以热切地将单身人士与Guice绑定在一起

 import com.google.inject.AbstractModule; import com.google.inject.name.Names; public class StartupConfigurationModule extends AbstractModule { protected void configure() { bind(StartupConfiguration.class) .to(StartupConfigurationImpl.class) .asEagerSingleton(); } } 

StartupConfigurationImpl将在默认构造函数中完成它的工作。

 @Singleton public class StartupConfigurationImpl implements StartupConfiguration { @Inject private Logger log; public StartupConfigurationImpl() { init(); } public void init(){ log.info("init"); } } 

请参阅https://www.playframework.com/documentation/2.4.x/JavaDependencyInjection#Eager-bindings