move kafka topics creator into events-processors
This commit is contained in:
parent
1c9a93b457
commit
6035c2eaa0
7 changed files with 32 additions and 16 deletions
|
|
@ -1,10 +0,0 @@
|
|||
package dev.adamko.kafkatorio.processor.admin
|
||||
|
||||
import dev.adamko.kafkatorio.processor.config.ApplicationProperties
|
||||
|
||||
|
||||
fun main() {
|
||||
val appProps = ApplicationProperties.load()
|
||||
val admin = KafkatorioKafkaAdmin(appProps)
|
||||
admin.createKafkatorioTopics()
|
||||
}
|
||||
|
|
@ -18,12 +18,12 @@ import org.apache.kafka.streams.Topology
|
|||
import org.apache.kafka.streams.TopologyDescription
|
||||
|
||||
|
||||
private val appProps = ApplicationProperties.load()
|
||||
|
||||
suspend fun launchTopology(
|
||||
id: String,
|
||||
topology: Topology,
|
||||
additionalProperties: Map<String, String> = mapOf(),
|
||||
appProps: ApplicationProperties,
|
||||
): Unit = coroutineScope {
|
||||
|
||||
val props: Properties = appProps.kafkaStreamsConfig.toProperties()
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
package dev.adamko.kafkatorio.processors
|
||||
|
||||
import dev.adamko.kafkatorio.processor.admin.KafkatorioKafkaAdmin
|
||||
import dev.adamko.kafkatorio.processor.config.ApplicationProperties
|
||||
|
||||
fun createTopics(
|
||||
appProps: ApplicationProperties = ApplicationProperties.load(),
|
||||
) {
|
||||
val admin = KafkatorioKafkaAdmin(appProps)
|
||||
admin.createKafkatorioTopics()
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package dev.adamko.kafkatorio.processors
|
||||
|
||||
import dev.adamko.kafkatorio.processor.config.ApplicationProperties
|
||||
import dev.adamko.kafkatorio.processor.core.launchTopology
|
||||
import dev.adamko.kafkatorio.schema.common.FactorioServerId
|
||||
import dev.adamko.kafkatorio.schema.common.PrototypeHashCode
|
||||
|
|
@ -22,6 +23,7 @@ suspend fun groupEntitiesMapChunks(
|
|||
layer: ServerMapTileLayer,
|
||||
colouredUpdatesStreamTopic: String,
|
||||
colouredChunkStateTopic: String,
|
||||
appProps: ApplicationProperties = ApplicationProperties.load(),
|
||||
) {
|
||||
val builder = StreamsBuilder()
|
||||
|
||||
|
|
@ -50,5 +52,5 @@ suspend fun groupEntitiesMapChunks(
|
|||
colouredChunkStateTopic,
|
||||
)
|
||||
|
||||
launchTopology("groupTilesMapChunks.${layer.dir}", topology)
|
||||
launchTopology("groupTilesMapChunks.${layer.dir}", topology, appProps = appProps)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package dev.adamko.kafkatorio.processors
|
||||
|
||||
import dev.adamko.kafkatorio.processor.config.ApplicationProperties
|
||||
import dev.adamko.kafkatorio.processor.core.launchTopology
|
||||
import dev.adamko.kafkatorio.schema.common.FactorioServerId
|
||||
import dev.adamko.kafkatorio.schema.common.ServerMapTileLayer
|
||||
|
|
@ -11,7 +12,9 @@ import org.apache.kafka.streams.kstream.KStream
|
|||
|
||||
|
||||
/** Terrain tiles */
|
||||
suspend fun groupTilesMapChunks() {
|
||||
suspend fun groupTilesMapChunks(
|
||||
appProps: ApplicationProperties = ApplicationProperties.load(),
|
||||
) {
|
||||
val builder = StreamsBuilder()
|
||||
|
||||
val protosStream: KStream<FactorioServerId, PrototypesUpdate> =
|
||||
|
|
@ -19,5 +22,9 @@ suspend fun groupTilesMapChunks() {
|
|||
|
||||
val topology = colourMapChunks(builder, protosStream)
|
||||
|
||||
launchTopology("groupTilesMapChunks.${ServerMapTileLayer.TERRAIN.dir}", topology)
|
||||
launchTopology(
|
||||
id = "groupTilesMapChunks.${ServerMapTileLayer.TERRAIN.dir}",
|
||||
topology = topology,
|
||||
appProps = appProps
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ import kotlinx.coroutines.launch
|
|||
|
||||
|
||||
suspend fun main(): Unit = coroutineScope {
|
||||
|
||||
createTopics()
|
||||
|
||||
launch {
|
||||
splitPackets()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,20 @@
|
|||
package dev.adamko.kafkatorio.processors
|
||||
|
||||
import dev.adamko.kafkatorio.processor.config.ApplicationProperties
|
||||
import dev.adamko.kafkatorio.processor.core.launchTopology
|
||||
import dev.adamko.kafkatorio.server.processor.topology.factorioServerPacketStream
|
||||
import dev.adamko.kafkatorio.server.processor.topology.splitFactorioServerPacketStream
|
||||
import org.apache.kafka.streams.StreamsBuilder
|
||||
|
||||
|
||||
suspend fun splitPackets() {
|
||||
suspend fun splitPackets(
|
||||
appProps: ApplicationProperties = ApplicationProperties.load(),
|
||||
) {
|
||||
val builder = StreamsBuilder()
|
||||
val packets = factorioServerPacketStream(builder)
|
||||
splitFactorioServerPacketStream(packets)
|
||||
|
||||
val topology = builder.build()
|
||||
|
||||
launchTopology("splitPackets", topology)
|
||||
launchTopology("splitPackets", topology, appProps = appProps)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue