Cluster and Worker - noppoMan/Suv GitHub Wiki
This is like node.js's cluster module. Suv Cluser uses IPC to share connection between master and worker.
Usage
Cluster using sample for Slimane
import Suv
import Slimane
if Cluster.isMaster {
let execOpts = Array(Process.arguments[1..<Process.arguments.count])
let cluster = Cluster(execOpts)
for i in 0..<OS.cpuCount {
let worker = try! cluster.fork(silent: false)
}
// Need to bind address and listen server on parent
Slimane().listen(host: "0.0.0.0", port: 3000)
} else {
let app = Slimane()
app.get("/") { req, res in
res.write("Hello! I'm a \(Process.pid)")
}
// Not need bind, cause child processes use parent established connection with IPC.
app.listen()
}