gpt4 book ai didi

scala - 如何在Play 2.0中实现特定日期的预定作业?

转载 作者:行者123 更新时间:2023-12-03 04:34:23 26 4
gpt4 key购买 nike

Where is the job support in Play 2.0?

我已阅读此帖子,并找到了使用 Global 和 Akka 每隔一段时间实现计划作业的方法。

但仍然不知道在特定日期安排作业,例如,每天午夜执行一次的作业。

Play 2.0不支持?如果没有,最好的方法是什么?

最佳答案

您可以将 Quartz 库与 CronTrigger 一起使用在特定日期/时间执行作业。看看他们的tutorial 。这是一个简单调度程序的示例:

import java.util.Date

import org.quartz.JobBuilder.newJob
import org.quartz.SimpleScheduleBuilder.simpleSchedule
import org.quartz.TriggerBuilder.newTrigger
import org.quartz.impl.StdSchedulerFactory
import org.quartz.Job
import org.quartz.JobExecutionContext

import play.api.Application
import play.api.GlobalSettings
import play.api.Logger

object Global extends GlobalSettings {

val scheduler = StdSchedulerFactory.getDefaultScheduler();

override def onStart(app: Application) {
Logger.info("Quarz scheduler starting...")

scheduler.start();

// define the job and tie it to our HelloJob class
val job = newJob(classOf[MyWorker]).withIdentity("job1", "group1").build();

// Trigger the job to run now, and then repeat every 10 seconds
val trigger = newTrigger()
.withIdentity("trigger1", "group1")
.startNow()
.withSchedule(simpleSchedule()
.withIntervalInSeconds(10)
.repeatForever())
.build();

// Tell quartz to schedule the job using our trigger
scheduler.scheduleJob(job, trigger);

}

override def onStop(app: Application) {
Logger.info("Quartz scheduler shutdown.")
scheduler.shutdown();
}

}

class MyWorker extends Job {
def execute(ctxt: JobExecutionContext) {
Logger.debug("Scheduled Job triggered at: " + new Date)
}
}

关于scala - 如何在Play 2.0中实现特定日期的预定作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9883328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com