forked from Minecraft/Stonks
Prep work for using a configuration file
parent
d5ea7cac45
commit
a4140f708c
|
@ -14,34 +14,48 @@ fun main() =
|
||||||
runBlocking {
|
runBlocking {
|
||||||
println("Starting Stonks...")
|
println("Starting Stonks...")
|
||||||
|
|
||||||
|
val databaseBaseDir = "./databases"
|
||||||
|
val databaseName = "statistics"
|
||||||
val h2StartWebServer = true
|
val h2StartWebServer = true
|
||||||
val h2tWebServerPort = 8082
|
val h2tWebServerPort = 8082
|
||||||
val h2TcpServerPort = 9092
|
val h2TcpServerPort = 9092
|
||||||
|
|
||||||
val database = initH2Server(h2TcpServerPort, h2StartWebServer, h2tWebServerPort)
|
val database =
|
||||||
|
initH2Server(
|
||||||
|
databaseBaseDir,
|
||||||
|
databaseName,
|
||||||
|
h2TcpServerPort,
|
||||||
|
h2StartWebServer,
|
||||||
|
h2tWebServerPort)
|
||||||
|
|
||||||
val apiServerPort = 7000
|
val apiServerPort = 7000
|
||||||
|
|
||||||
initApiServer(apiServerPort, database)
|
initApiServer(apiServerPort, database)
|
||||||
|
|
||||||
val periodicFetchingInterval = 15 * 60 * 1000L
|
val periodicFetchingInterval = 15 * 60 * 1000L
|
||||||
val statisticsFolder = "../test_data"
|
val minecraftStatsFolder = "../test_data"
|
||||||
|
|
||||||
initPeriodicFetching(periodicFetchingInterval, statisticsFolder, database)
|
initPeriodicFetching(periodicFetchingInterval, minecraftStatsFolder, database)
|
||||||
|
|
||||||
delay(60 * 1000L)
|
delay(60 * 1000L)
|
||||||
|
|
||||||
println("END")
|
println("END")
|
||||||
}
|
}
|
||||||
|
|
||||||
fun initH2Server(h2TcpServerPort: Int, h2StartWebServer: Boolean, h2WebServerPort: Int): Database {
|
fun initH2Server(
|
||||||
|
databaseBaseDir: String,
|
||||||
|
databaseName: String,
|
||||||
|
h2TcpServerPort: Int,
|
||||||
|
h2StartWebServer: Boolean,
|
||||||
|
h2WebServerPort: Int
|
||||||
|
): Database {
|
||||||
val webServer =
|
val webServer =
|
||||||
Server.createWebServer(
|
Server.createWebServer(
|
||||||
"-trace", "-baseDir", "./databases", "-webPort", h2WebServerPort.toString())
|
"-trace", "-baseDir", databaseBaseDir, "-webPort", h2WebServerPort.toString())
|
||||||
|
|
||||||
val tcpServer =
|
val tcpServer =
|
||||||
Server.createTcpServer(
|
Server.createTcpServer(
|
||||||
"-trace", "-baseDir", "./databases", "-webPort", h2TcpServerPort.toString())
|
"-trace", "-baseDir", databaseBaseDir, "-webPort", h2TcpServerPort.toString())
|
||||||
|
|
||||||
if (h2StartWebServer) {
|
if (h2StartWebServer) {
|
||||||
webServer.start()
|
webServer.start()
|
||||||
|
@ -51,17 +65,14 @@ fun initH2Server(h2TcpServerPort: Int, h2StartWebServer: Boolean, h2WebServerPor
|
||||||
tcpServer.start()
|
tcpServer.start()
|
||||||
println("H2 TCP endpoint started: ${tcpServer.getURL()}")
|
println("H2 TCP endpoint started: ${tcpServer.getURL()}")
|
||||||
|
|
||||||
val database = Database.connect("jdbc:h2:./databases/test", "org.h2.Driver")
|
val database = Database.connect("jdbc:h2:$databaseBaseDir/$databaseName", "org.h2.Driver")
|
||||||
|
|
||||||
Statistics.index(false, Statistics.playerId)
|
|
||||||
Statistics.index("idx_type_name", false, Statistics.type, Statistics.name)
|
|
||||||
Statistics.index("idx_timestamp", false, Statistics.timestamp)
|
|
||||||
Statistics.index("idx_value", false, Statistics.value)
|
|
||||||
|
|
||||||
transaction {
|
transaction {
|
||||||
addLogger(StdOutSqlLogger)
|
addLogger(StdOutSqlLogger)
|
||||||
SchemaUtils.create(Statistics)
|
SchemaUtils.create(Statistics)
|
||||||
|
|
||||||
|
// Create indexes with explicit SQL because I can't figure out how to do it with exposed
|
||||||
|
// Wrap it in a try block because it throws an exception if index already exists
|
||||||
try {
|
try {
|
||||||
TransactionManager.current()
|
TransactionManager.current()
|
||||||
.exec("CREATE INDEX idx_playerid ON Statistics (\"PlayerId\")")
|
.exec("CREATE INDEX idx_playerid ON Statistics (\"PlayerId\")")
|
||||||
|
|
Loading…
Reference in New Issue