forked from Minecraft/Stonks
Prep work for using a configuration file
parent
d5ea7cac45
commit
a4140f708c
|
@ -14,34 +14,48 @@ fun main() =
|
|||
runBlocking {
|
||||
println("Starting Stonks...")
|
||||
|
||||
val databaseBaseDir = "./databases"
|
||||
val databaseName = "statistics"
|
||||
val h2StartWebServer = true
|
||||
val h2tWebServerPort = 8082
|
||||
val h2TcpServerPort = 9092
|
||||
|
||||
val database = initH2Server(h2TcpServerPort, h2StartWebServer, h2tWebServerPort)
|
||||
val database =
|
||||
initH2Server(
|
||||
databaseBaseDir,
|
||||
databaseName,
|
||||
h2TcpServerPort,
|
||||
h2StartWebServer,
|
||||
h2tWebServerPort)
|
||||
|
||||
val apiServerPort = 7000
|
||||
|
||||
initApiServer(apiServerPort, database)
|
||||
|
||||
val periodicFetchingInterval = 15 * 60 * 1000L
|
||||
val statisticsFolder = "../test_data"
|
||||
val minecraftStatsFolder = "../test_data"
|
||||
|
||||
initPeriodicFetching(periodicFetchingInterval, statisticsFolder, database)
|
||||
initPeriodicFetching(periodicFetchingInterval, minecraftStatsFolder, database)
|
||||
|
||||
delay(60 * 1000L)
|
||||
|
||||
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 =
|
||||
Server.createWebServer(
|
||||
"-trace", "-baseDir", "./databases", "-webPort", h2WebServerPort.toString())
|
||||
"-trace", "-baseDir", databaseBaseDir, "-webPort", h2WebServerPort.toString())
|
||||
|
||||
val tcpServer =
|
||||
Server.createTcpServer(
|
||||
"-trace", "-baseDir", "./databases", "-webPort", h2TcpServerPort.toString())
|
||||
"-trace", "-baseDir", databaseBaseDir, "-webPort", h2TcpServerPort.toString())
|
||||
|
||||
if (h2StartWebServer) {
|
||||
webServer.start()
|
||||
|
@ -51,17 +65,14 @@ fun initH2Server(h2TcpServerPort: Int, h2StartWebServer: Boolean, h2WebServerPor
|
|||
tcpServer.start()
|
||||
println("H2 TCP endpoint started: ${tcpServer.getURL()}")
|
||||
|
||||
val database = Database.connect("jdbc:h2:./databases/test", "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)
|
||||
val database = Database.connect("jdbc:h2:$databaseBaseDir/$databaseName", "org.h2.Driver")
|
||||
|
||||
transaction {
|
||||
addLogger(StdOutSqlLogger)
|
||||
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 {
|
||||
TransactionManager.current()
|
||||
.exec("CREATE INDEX idx_playerid ON Statistics (\"PlayerId\")")
|
||||
|
|
Loading…
Reference in New Issue