seyfert/packages/discordeno/gateway/manager/calculateWorkerId.ts
2022-07-08 01:33:29 -05:00

14 lines
510 B
TypeScript

import { GatewayManager } from "./gatewayManager.ts";
export function calculateWorkerId(manager: GatewayManager, shardId: number) {
// Ignore decimal numbers.
let workerId = Math.floor((shardId) / manager.shardsPerWorker);
// If the workerId overflows the maximal allowed workers we by default just use to last worker.
if (workerId >= manager.totalWorkers) {
// The Id of the last available worker is total -1
workerId = manager.totalWorkers - 1;
}
return workerId;
}