Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 异步作业是否已从Play框架中删除?什么是更好的选择?_Java_Playframework_Playframework 2.3 - Fatal编程技术网

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。我会看你贴的,谢谢!