Java 异步作业是否已从Play框架中删除?什么是更好的选择?
我想使用Java 异步作业是否已从Play框架中删除?什么是更好的选择?,java,playframework,playframework-2.3,Java,Playframework,Playframework 2.3,我想使用作业,这样我就可以在应用程序开始时启动它们。现在它似乎已经完全从游戏中移除了 我看到一些示例,其中人们创建了一个全局类,但不完全确定是否/如何使用它来替换作业 有什么建议吗 编辑:如果你要否决投票,请给出一个理由。也许我在问题中遗漏了什么,也许这不属于这里。至少有些东西…在Play 2.0中删除了Job类 根据您的播放版本以及是否需要异步,您有一些备选方案: 阿克卡演员 对于自Play 2.0以来的所有版本,您可以使用Akka Actors安排一次异步任务/actor,并在启动时通过Pl
作业
,这样我就可以在应用程序开始时启动它们。现在它似乎已经完全从游戏中移除了
我看到一些示例,其中人们创建了一个全局
类,但不完全确定是否/如何使用它来替换作业
有什么建议吗
编辑:如果你要否决投票,请给出一个理由。也许我在问题中遗漏了什么,也许这不属于这里。至少有些东西…在Play 2.0中删除了Job类 根据您的播放版本以及是否需要异步,您有一些备选方案: 阿克卡演员 对于自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()
);
}
}
有关详细信息,请参阅
渴望单身的人
从Play2.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();
}
}
startupConfigurationMPL
将在默认构造函数中完成其工作
@Singleton
public class StartupConfigurationImpl implements StartupConfiguration {
@Inject
private Logger log;
public StartupConfigurationImpl() {
init();
}
public void init(){
log.info("init");
}
}
参见我同意Akka Actors,但我不明白Guice的依赖注入与任务/作业管理有什么关系?这是一种在应用程序启动时实现某些逻辑/任务的方法,这也是问题的一部分。在应用程序启动时自动创建即时绑定组件。如果将它们声明为单例,则它们只实例化一次(在启动时)。参与者将是异步任务的首选方式,在异步任务中,您不需要特定组件的工作结果。如果您需要通过注入将启动任务的结果提供给其他组件(如控制器),那么热切的单例可能会更好。啊,我理解,我没有阅读“应用程序启动时”部分。:)@AlexanderBuchholtz i将使用最新版本2.4.1。我会看你贴的,谢谢!