app/schedule/BakeJob.scala (14 lines of code) (raw):

package schedule import models.RecipeId import org.quartz.{JobExecutionContext, JobDataMap, Job} import schedule.BakeScheduler.JobDataKeys /** Quartz job wrapper for [[schedule.ScheduledBakeRunner]] */ class BakeJob extends Job { private def getAs[T](key: String)(implicit jobDataMap: JobDataMap): T = jobDataMap.get(key).asInstanceOf[T] override def execute(context: JobExecutionContext): Unit = { implicit val jobDataMap = context.getJobDetail.getJobDataMap val recipeId = getAs[RecipeId](JobDataKeys.RecipeId) val runner = getAs[ScheduledBakeRunner](JobDataKeys.Runner) runner.bake(recipeId) } }