java - 在 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);
解决方案
好的,我通过使用 play.api.Application 初始化调度任务并使用初始化所需的类实例来解决这个问题。
myObject = Play.application(app).injector().instanceOf(MyObjectClass.class);
我看到调度程序现在每 15 分钟触发一次以完成工作。我可能需要进行一些空检查以避免这些异常。
推荐阅读
- c# - Visual Studio - .wxs 文件自动缩进不同于 .cs 文件
- python - 使用 python 抓取多个网页的网页
- javascript - 当其中一个 Promise 不成功时,使用 ES6 解构的 Promise 失败
- google-bigquery - BigQuery ELT:将 json 行作为单个字符串列读入联合表
- python - 在 uvicorn 启动时执行脚本并缓存数据
- android - 如何使用类似于谷歌照片的自定义可绘制添加回收器视图快速滚动器?
- jenkins - Jenkins 脚本化管道嵌套环境变量
- vue.js - vue-router :为什么在以前的查询用相同的值重写时监视 $route 触发器
- apache - https 配置后的 ERR_TIMED_OUT
- redis - 如何在 redis 中执行派生或计算属性(又名聚合)?