package com.edulify.modules.sitemap; import akka.actor.ActorSystem; import play.Application; import play.Play; import play.libs.Akka; import scala.concurrent.duration.FiniteDuration; import akka.dispatch.MessageDispatcher; import javax.inject.Inject; import javax.inject.Singleton; @Singleton public class SitemapJob { private SitemapConfig config; private SitemapTask task; private ActorSystem actorSystem; @Inject public SitemapJob(ActorSystem actorSystem, SitemapConfig config, SitemapTask task) { this.config = config; this.actorSystem = actorSystem; this.task = task; this.init(); } private void init() { MessageDispatcher executionContext = actorSystem.dispatchers().lookup(config.getDispatcherName()); this.actorSystem .scheduler() .schedule( (FiniteDuration) FiniteDuration.create(config.getInitialDelay()), (FiniteDuration) FiniteDuration.create(config.getExecutionInterval()), task, executionContext ); } /** * @deprecated Use com.edulify.modules.sitemap.SitemapModule instead. */ @Deprecated public static void startSitemapGenerator() { Application application = Play.application(); ActorSystem actorSystem = Akka.system(); SitemapConfig sitemapConfig = application.injector().instanceOf(SitemapConfig.class); SitemapTask task = application.injector().instanceOf(SitemapTask.class); new SitemapJob(actorSystem, sitemapConfig, task).init(); } }