在这个生成的事件注册表用于并发服务前审查它。
拒绝空白事件名,支持并发注册与发送,让高频注销保持高效,并隔离处理器失败且不记录载荷。
kotlin
class EventRegistry {
private val handlers =
mutableMapOf<String, MutableList<(String) -> Unit>>()
fun on(event: String, handler: (String) -> Unit): () -> Unit {
val list = handlers.getOrPut(event) { mutableListOf() }
list += handler
return { list.remove(handler) }
}
fun emit(event: String, payload: String) {
handlers[event]?.forEach { handler ->
try {
handler(payload)
} catch (error: Exception) {
println("handler failed for $payload: ${error.message}")
}
}
}
}
生成代码仅作示例,不代表任何特定模型