tot*_*shi 9 scala akka playframework-2.0
我已阅读本线程,发现实施计划作业的方式间隔使用全局和阿卡.
但是仍然不知道在特定日期安排的工作,例如,每天午夜执行一次工作.
Play 2.0不支持吗?如果没有,最好的方法是什么?
sun*_*ons 10
您可以将Quartz库与CronTrigger一起使用,以在特定日期/时间执行作业.看看他们的教程.以下是一个简单调度程序的示例:
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)
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3506 次 |
最近记录: |