mirror of
				https://github.com/GayPizzaSpecifications/foundation.git
				synced 2025-11-04 03:39:37 +00:00 
			
		
		
		
	Heimdall/Gjallarhorn: Minor changes to idle timeout.
This commit is contained in:
		@ -65,6 +65,7 @@ class FoundationHeimdallPlugin : JavaPlugin(), Listener {
 | 
				
			|||||||
      password = config.db.password
 | 
					      password = config.db.password
 | 
				
			||||||
      schema = "heimdall"
 | 
					      schema = "heimdall"
 | 
				
			||||||
      maximumPoolSize = 10
 | 
					      maximumPoolSize = 10
 | 
				
			||||||
 | 
					      idleTimeout = Duration.ofMinutes(5).toMillis()
 | 
				
			||||||
      maxLifetime = Duration.ofMinutes(10).toMillis()
 | 
					      maxLifetime = Duration.ofMinutes(10).toMillis()
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    val initMigrationContent = FoundationHeimdallPlugin::class.java.getResourceAsStream(
 | 
					    val initMigrationContent = FoundationHeimdallPlugin::class.java.getResourceAsStream(
 | 
				
			||||||
 | 
				
			|||||||
@ -28,6 +28,7 @@ class GjallarhornCommand : CliktCommand(invokeWithoutSubcommand = true) {
 | 
				
			|||||||
      password = jdbcConnectionPassword
 | 
					      password = jdbcConnectionPassword
 | 
				
			||||||
      minimumIdle = dbPoolSize / 2
 | 
					      minimumIdle = dbPoolSize / 2
 | 
				
			||||||
      maximumPoolSize = dbPoolSize
 | 
					      maximumPoolSize = dbPoolSize
 | 
				
			||||||
 | 
					      idleTimeout = Duration.ofMinutes(5).toMillis()
 | 
				
			||||||
      maxLifetime = Duration.ofMinutes(10).toMillis()
 | 
					      maxLifetime = Duration.ofMinutes(10).toMillis()
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    val db = Database.connect(pool)
 | 
					    val db = Database.connect(pool)
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,6 @@ import cloud.kubelet.foundation.gjallarhorn.export.CombinedChunkFormat
 | 
				
			|||||||
import cloud.kubelet.foundation.gjallarhorn.state.BlockExpanse
 | 
					import cloud.kubelet.foundation.gjallarhorn.state.BlockExpanse
 | 
				
			||||||
import cloud.kubelet.foundation.gjallarhorn.state.BlockLogTracker
 | 
					import cloud.kubelet.foundation.gjallarhorn.state.BlockLogTracker
 | 
				
			||||||
import cloud.kubelet.foundation.gjallarhorn.state.ChangelogSlice
 | 
					import cloud.kubelet.foundation.gjallarhorn.state.ChangelogSlice
 | 
				
			||||||
import cloud.kubelet.foundation.gjallarhorn.state.SparseBlockStateMap
 | 
					 | 
				
			||||||
import cloud.kubelet.foundation.gjallarhorn.util.savePngFile
 | 
					import cloud.kubelet.foundation.gjallarhorn.util.savePngFile
 | 
				
			||||||
import com.github.ajalt.clikt.core.CliktCommand
 | 
					import com.github.ajalt.clikt.core.CliktCommand
 | 
				
			||||||
import com.github.ajalt.clikt.core.requireObject
 | 
					import com.github.ajalt.clikt.core.requireObject
 | 
				
			||||||
@ -31,10 +30,8 @@ class ChunkExportLoaderCommand : CliktCommand("Chunk Export Loader", name = "chu
 | 
				
			|||||||
  private val saveCombinedFormat by option("--save-combined-format").flag()
 | 
					  private val saveCombinedFormat by option("--save-combined-format").flag()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  override fun run() {
 | 
					  override fun run() {
 | 
				
			||||||
    val format: CombinedChunkFormat
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    val combinedFormatFile = exportDirectoryPath.resolve("combined.json").toFile()
 | 
					    val combinedFormatFile = exportDirectoryPath.resolve("combined.json").toFile()
 | 
				
			||||||
    format = if (loadCombinedFormat) {
 | 
					    val format = if (loadCombinedFormat) {
 | 
				
			||||||
      Json.decodeFromStream(CombinedChunkFormat.serializer(), combinedFormatFile.inputStream())
 | 
					      Json.decodeFromStream(CombinedChunkFormat.serializer(), combinedFormatFile.inputStream())
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      val tracker = BlockLogTracker(isConcurrent = true)
 | 
					      val tracker = BlockLogTracker(isConcurrent = true)
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,9 @@
 | 
				
			|||||||
package cloud.kubelet.foundation.gjallarhorn.export
 | 
					package cloud.kubelet.foundation.gjallarhorn.export
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import cloud.kubelet.foundation.gjallarhorn.state.*
 | 
					import cloud.kubelet.foundation.gjallarhorn.state.BlockCoordinate
 | 
				
			||||||
 | 
					import cloud.kubelet.foundation.gjallarhorn.state.BlockLogTracker
 | 
				
			||||||
 | 
					import cloud.kubelet.foundation.gjallarhorn.state.BlockState
 | 
				
			||||||
 | 
					import cloud.kubelet.foundation.gjallarhorn.state.SparseBlockStateMap
 | 
				
			||||||
import cloud.kubelet.foundation.heimdall.export.ExportedChunk
 | 
					import cloud.kubelet.foundation.heimdall.export.ExportedChunk
 | 
				
			||||||
import kotlinx.serialization.json.Json
 | 
					import kotlinx.serialization.json.Json
 | 
				
			||||||
import kotlinx.serialization.json.decodeFromStream
 | 
					import kotlinx.serialization.json.decodeFromStream
 | 
				
			||||||
@ -10,7 +13,9 @@ import java.util.zip.GZIPInputStream
 | 
				
			|||||||
import kotlin.io.path.inputStream
 | 
					import kotlin.io.path.inputStream
 | 
				
			||||||
import kotlin.io.path.listDirectoryEntries
 | 
					import kotlin.io.path.listDirectoryEntries
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ChunkExportLoader(val map: SparseBlockStateMap? = null, val tracker: BlockLogTracker? = null) {
 | 
					class ChunkExportLoader(
 | 
				
			||||||
 | 
					  val map: SparseBlockStateMap? = null,
 | 
				
			||||||
 | 
					  val tracker: BlockLogTracker? = null) {
 | 
				
			||||||
  fun loadAllChunksForWorld(path: Path, world: String, fast: Boolean = false, limit: Int? = null) {
 | 
					  fun loadAllChunksForWorld(path: Path, world: String, fast: Boolean = false, limit: Int? = null) {
 | 
				
			||||||
    var chunkFiles = path.listDirectoryEntries("${world}_chunk_*.json.gz")
 | 
					    var chunkFiles = path.listDirectoryEntries("${world}_chunk_*.json.gz")
 | 
				
			||||||
    if (limit != null) {
 | 
					    if (limit != null) {
 | 
				
			||||||
 | 
				
			|||||||
@ -35,5 +35,13 @@ data class BlockCoordinate(
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      return BlockCoordinate(x, y, z)
 | 
					      return BlockCoordinate(x, y, z)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fun minOf(coordinates: List<BlockCoordinate>): BlockCoordinate {
 | 
				
			||||||
 | 
					      val x = coordinates.minOf { it.x }
 | 
				
			||||||
 | 
					      val y = coordinates.minOf { it.y }
 | 
				
			||||||
 | 
					      val z = coordinates.minOf { it.z }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      return BlockCoordinate(x, y, z)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user