optimize search indices regularly

pull/83/head
Thibault Duplessis 2013-04-21 11:27:55 -03:00
parent 20e1492cd7
commit 608f445791
3 changed files with 16 additions and 32 deletions

View File

@ -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
// }

View File

@ -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
}
}

View File

@ -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)
}