From 608f445791e48339c0c5acbd8233589eb84ab581 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Sun, 21 Apr 2013 11:27:55 -0300 Subject: [PATCH] optimize search indices regularly --- app/Cron.scala | 27 --------------------------- modules/game/src/main/Env.scala | 4 +--- modules/search/src/main/Env.scala | 17 +++++++++++++++-- 3 files changed, 16 insertions(+), 32 deletions(-) diff --git a/app/Cron.scala b/app/Cron.scala index 7ed0563f4f..a410a84a00 100644 --- a/app/Cron.scala +++ b/app/Cron.scala @@ -17,33 +17,6 @@ object Cron { // val actors = Env.hub.actor // val sockets = Env.hub.socket - - - // if (current.mode != Mode.Dev) { - - // effect(4.5 hours, "game: cleanup") { - // Env.titivate.cleanupUnplayed flatMap { _ ⇒ - // Env.titivate.cleanupNext - // } - // } - - // effect(1.13 hour, "game: finish by clock") { - // Env.titivate.finishByClock - // } - - // effect(2.3 hour, "game: finish abandoned") { - // Env.titivate.finishAbandoned - // } - // } - - // effect(5 minutes, "search: index finished games") { - // Env.search.indexer.indexQueue - // } - - // effect(2 hours, "search: optimize index") { - // Env.search.indexer.optimize - // } - // unsafe(10 minutes, "firewall: refresh") { // Env.security.firewall.refresh // } diff --git a/modules/game/src/main/Env.scala b/modules/game/src/main/Env.scala index 3b813ec3a6..ffe54d8662 100644 --- a/modules/game/src/main/Env.scala +++ b/modules/game/src/main/Env.scala @@ -51,9 +51,7 @@ final class Env( import scala.concurrent.duration._ scheduler.effect(4.5 hours, "game: cleanup") { - titivate.cleanupUnplayed flatMap { _ ⇒ - titivate.cleanupNext - } + titivate.cleanupUnplayed >> titivate.cleanupNext } } diff --git a/modules/search/src/main/Env.scala b/modules/search/src/main/Env.scala index c6696bdeb6..b36839955d 100644 --- a/modules/search/src/main/Env.scala +++ b/modules/search/src/main/Env.scala @@ -3,12 +3,15 @@ package lila.search import com.typesafe.config.Config import scalastic.elasticsearch import scala.concurrent.Future +import akka.actor.ActorSystem +import scala.collection.JavaConversions._ -final class Env(config: Config) { +final class Env(config: Config, system: ActorSystem) { private val ESHost = config getString "es.host" private val ESPort = config getInt "es.port" private val ESCluster = config getString "es.cluster" + private val IndexesToOptimize = config getStringList "indexes_to_optimize" val esIndexer = elasticsearch.Indexer.transport( settings = Map("cluster.name" -> ESCluster), @@ -21,10 +24,20 @@ final class Env(config: Config) { esIndexer.start loginfo("[search] ElasticSearch is running") } + + { + val scheduler = new lila.common.Scheduler(system) + import scala.concurrent.duration._ + + scheduler.effect(2 hours, "search: optimize index") { + esIndexer.optimize(IndexesToOptimize) + } + } } object Env { lazy val current = "[boot] search" describes new Env( - config = lila.common.PlayApp loadConfig "search") + config = lila.common.PlayApp loadConfig "search", + system = lila.common.PlayApp.system) }