在播放框架中的测试模式下禁用 play.jobs.Job 运行

Eis*_*ith 5 scala playframework

使用带有 Scala 的 play 框架 1.2.4。我的游戏工作很少看起来像

@OnApplicationStart class MyOtherJob extends Job {  ...  } 

@Every("30s")  class MyJob extends Job {  ...  }
Run Code Online (Sandbox Code Playgroud)

当应用程序处于测试模式时,这些作业正在运行,所以它们会把事情搞砸。如何在测试时禁止它们运行?

我尝试了以下应用程序配置,没有帮助:

# Jobs executor 
# ~~~~~~ 
# Size of the Jobs pool 
play.jobs.pool=10 
test.play.jobs.pool=0 
test.cron.queue.every=never 
dev.cron.queue.every=20s 
prod.cron.queue.every=20s 
test.cron.onApplicationStart.trigger=never 
dev.cron.onApplicationStart.trigger=auto 
prod.cron.onApplicationStart.trigger=auto 
Run Code Online (Sandbox Code Playgroud)

Cod*_*nci 4

可以使用以下语法检查 Play 是否在测试模式下运行。

play.Play.runingInTestMode()
Run Code Online (Sandbox Code Playgroud)

注意:拼写错误并非偶然。这是 API 中的方法名称。

因此,在您的作业中,您应该能够使用上述内容将作业执行包装在 IF 语句周围,从而防止测试模式作业。