首页 > 解决方案 > 在 java play scheduler 任务中注入一个类实例

问题描述

我正在尝试在 Java play framework 2.5.10 中创建一个调度程序,我想每 15 分钟执行一次任务。我已经完成了可以调用任务的计划任务。

但是我发现了两个问题

我得到一个空指针异常,其中注入的类从堆栈跟踪变为空

我使用了以下方法,如代码所示

在 myThread 中,我试图注入一些即将为空的类。

它也只触发一次,这是由于空指针异常吗?即使我看到空指针,我也希望每 15 分钟执行一次任务计划。

 this.actorSystem
     .scheduler()
     .schedule( FiniteDuration.create(0,TimeUnit.SECONDS),
                FiniteDuration.create(15,TimeUnit.MINUTES),
                new myThread(),
                executionContext);

标签: javascalaplayframeworkplayframework-2.5

解决方案


好的,我通过使用 play.api.Application 初始化调度任务并使用初始化所需的类实例来解决这个问题。

myObject = Play.application(app).injector().instanceOf(MyObjectClass.class);

我看到调度程序现在每 15 分钟触发一次以完成工作。我可能需要进行一些空检查以避免这些异常。


推荐阅读