在 java 播放调度程序任务中注入一个 class 实例

Injecting a class instance in java play scheduler task

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

但是我发现了两个问题

我得到了一个空指针异常,其中 class 正在注入的是来自堆栈跟踪的空指针

我使用了代码中所示的以下方法

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

也是只触发一次是不是空指针异常?我期待每 15 分钟的任务计划,即使我看到空指针。

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

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

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

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