Distributed Coordinator and Workers¶
Use this setup to run one coordinator with multiple workers and bounded in-flight leases.
Coordinator config¶
{
"global": {
"distributed": {
"enabled": true,
"role": "coordinator",
"host": "127.0.0.1",
"port": 9876,
"expectedWorkers": 2,
"joinTimeoutMs": 60000,
"resultTimeoutMs": 300000,
"staleWorkerTimeoutMs": 15000,
"leaseBatchSize": 2,
"maxInFlightLeasedEndpointsPerWorker": 1,
"assignmentStrategy": "least-loaded",
"authToken": "shared-token",
"authHeaderName": "x-glockit-token"
}
},
"endpoints": [
{ "name": "a", "url": "https://api.example.com/a", "method": "GET" },
{ "name": "b", "url": "https://api.example.com/b", "method": "GET" },
{ "name": "c", "url": "https://api.example.com/c", "method": "GET" }
]
}
Worker config¶
{
"global": {
"distributed": {
"enabled": true,
"role": "worker",
"coordinatorUrl": "http://127.0.0.1:9876",
"workerId": "worker-1",
"pollIntervalMs": 500,
"heartbeatIntervalMs": 5000,
"resultSubmitRetries": 3,
"resultSubmitBackoffMs": 1000,
"authToken": "shared-token",
"authHeaderName": "x-glockit-token"
}
},
"endpoints": [
{ "name": "placeholder", "url": "https://api.example.com/ping", "method": "GET" }
]
}
Run sequence¶
glockit run -c coordinator.json
glockit run -c worker-1.json
glockit run -c worker-2.json
Verify coordinator output¶
Look for worker lease completion counts in the distributed summary.
Example¶
Coordinator:
glockit run --config coordinator.json
Worker:
glockit run --config worker.json