当前位置: 首页 > 面试题库 >

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

齐鸿光
2023-03-14
问题内容

我想使用它,Job这样我就可以在应用程序启动时开始使用它们。现在看来它已经完全从Play中删除了?

我看到了一些示例,人们在这些示例中创建了一个Global类,但不确定是否/应该如何使用它来代替Job

有什么建议?

编辑:如果您不赞成投票,请给出原因。也许我在问题中遗漏了一些东西,也许这不属于这里。至少…


问题答案:

Job类在Play 2.0中已删除。

您可以根据自己的Play版本以及是否需要异步来选择其他方法

从Play 2.0开始,对于所有版本,您都可以使用Akka Actors安排一次异步任务/角色,并在启动时通过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



 类似资料:
  • 我正在尝试从JList中删除选定的元素。我知道怎么去掉一个 然而;有办法删除我选择的索引吗?我知道这个功能 返回一个Int数组。我想,如果我遍历它以移除索引,它应该会起作用,但是,我会从中得到错误(假设是因为索引#正在下降)。

  • 之前做响应网站(pc,手机端自适应)一般都用bootstrap,之前用的是v3版本,但现在已经是v5了,现在用bootstrap的还多吗?一般用哪个版本?或者现在用的比较多的样式架构有哪些???

  • 本文向大家介绍为什么Ember.js是最好的javascript框架?,包括了为什么Ember.js是最好的javascript框架?的使用技巧和注意事项,需要的朋友参考一下 ember成为javascript顶级Web开发框架之一的原因很多。其中一些原因是- 由于内置了模板解决方案,因此无需编写太多代码。 灰烬的固执己见的体系结构可避免在不重要的决策上浪费时间。 友好的API,使应用程序开发高效

  • 问题内容: 如何从选择框中删除项目或向其中添加项目?我正在运行jQuery,这应该使任务更轻松。下面是一个示例选择框。 问题答案: 删除一个选项: 添加一个选项:

  • 问题内容: 我目前使用Apache Axis。但是我正在Intellij IDEA中创建一个新项目,并且可以选择添加以下内容之一: 阿帕奇轴心 Glassfish / JAX-WS 2.x RI / Metro 1.x / JWSDP 2.0 宁静的Web服务 我之所以选择Axis,是因为它是我惯用的一种,但是我仍然想知道它是否是更简单的选择。 问题答案: 我会选择JAX-WS 2.x RI /

  • 根据AsynchronousFileChannel和AsynchronousChannelGroup的文档,async NIO正在使用“IO事件处理”的专用线程池。在这个上下文中,我找不到任何明确的说明“处理”意味着什么,但根据这一点,我非常肯定,在一天结束时,阻塞会发生在那些专用线程上。为了缩小范围,我使用的是Linux,并且基于Alex Yursha的答案,它上没有非阻塞IO这样的东西,只有W