app/housekeeping/HousekeepingJobWrapper.scala (18 lines of code) (raw):

package housekeeping import org.quartz.{ DisallowConcurrentExecution, Job, JobDataMap, JobExecutionContext } /** Quartz job wrapper for [[schedule.ScheduledBakeRunner]] */ @DisallowConcurrentExecution class HousekeepingJobWrapper 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: JobDataMap = context.getJobDetail.getJobDataMap val housekeepingJob = getAs[HousekeepingJob](HousekeepingScheduler.HousekeepingJobInstance) housekeepingJob.housekeep() } }