且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在Play Framework 2.4.2 Scala中正确安排任务?

更新时间:2023-09-30 09:00:16

好.这是我构建的调度程序的工作代码: 模块:

Ok. Here working code of scheduler I've built: Module:

class JobModule extends AbstractModule with AkkaGuiceSupport {
  def configure() = {
    bindActor[SchedulerActor]("scheduler-actor")
    bind(classOf[Scheduler]).asEagerSingleton()
  }
}

计划程序:

class Scheduler @Inject() (val system: ActorSystem, @Named("scheduler-actor") val schedulerActor: ActorRef)(implicit ec: ExecutionContext)
{
  system.scheduler.schedule(
    0.microseconds, 5.minutes, schedulerActor, "update")
  system.scheduler.schedule(
    30.minutes, 30.days, schedulerActor, "clean")
}

演员:

@Singleton
class SchedulerActor @Inject() (updater: Updater) extends Actor {
  def receive = {
    case "update" => updateDB()
    case "clean" => clean()
  }

  def updateDB(): Unit ={
    Logger.debug("updates running")
  }

  def clean(): Unit ={
    Logger.debug("cleanup running")
  }
}

您还需要在application.conf中添加模块:

You also need to add your module in application.conf:

play.modules.enabled += "modules.JobModule"

希望这会对某人有所帮助

Hope this will help someone