Compare commits
No commits in common. "5140ba96da7af098868238649ee14375bcb43167" and "244aaa414a9576ff95900734ef9a96cbf98fff10" have entirely different histories.
5140ba96da
...
244aaa414a
|
@ -1,12 +1,6 @@
|
||||||
import type { EventEmitter } from 'events';
|
import type { EventEmitter } from 'events';
|
||||||
|
|
||||||
import type { TinyRaftEvents } from './tinyraft';
|
export class AntiEtcd extends EventEmitter
|
||||||
|
|
||||||
export type AntiEtcdEvents = {
|
|
||||||
raftchange: TinyRaftEvents['change'],
|
|
||||||
};
|
|
||||||
|
|
||||||
export class AntiEtcd extends EventEmitter<AntiEtcdEvents>
|
|
||||||
{
|
{
|
||||||
constructor(cfg: object);
|
constructor(cfg: object);
|
||||||
start(): Promise<void>;
|
start(): Promise<void>;
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
import type { EventEmitter } from 'events';
|
|
||||||
|
|
||||||
export type TinyRaftEvents = {
|
|
||||||
change: {
|
|
||||||
state: 'LEADER'|'FOLLOWER'|'CANDIDATE',
|
|
||||||
term: number,
|
|
||||||
leader: string|number,
|
|
||||||
followers: (string|number)[],
|
|
||||||
}[],
|
|
||||||
};
|
|
||||||
|
|
||||||
export type RaftMessage = {
|
|
||||||
type: 'VOTE_REQUEST'|'VOTE'|'PING'|'PONG',
|
|
||||||
term: number,
|
|
||||||
leader?: string|number,
|
|
||||||
priority?: number,
|
|
||||||
};
|
|
||||||
|
|
||||||
export class TinyRaft extends EventEmitter<TinyRaftEvents>
|
|
||||||
{
|
|
||||||
constructor(cfg: {
|
|
||||||
nodes: (number|string)[],
|
|
||||||
nodeId: number|string,
|
|
||||||
electionTimeout?: number,
|
|
||||||
heartbeatTimeout?: number,
|
|
||||||
leadershipTimeout?: number,
|
|
||||||
initialTerm?: number,
|
|
||||||
leaderPriority?: number,
|
|
||||||
send: (to: number|string, msg: RaftMessage) => void,
|
|
||||||
});
|
|
||||||
start();
|
|
||||||
stop();
|
|
||||||
onReceive(from: number|string, msg: RaftMessage);
|
|
||||||
markAlive();
|
|
||||||
setNodes(nodes: (number|string)[]);
|
|
||||||
}
|
|
|
@ -177,7 +177,7 @@ class TinyRaft extends EventEmitter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const prio = (this.leader == this.nodeId ? this.leaderPriority : undefined);
|
const prio = (this.leader == this.nodeId ? this.leaderPriority : undefined);
|
||||||
this.send(from, { type: VOTE, term: this.term, leader: this.leader, priority: prio });
|
this.send(from, { type: VOTE, term: this.term, leader: this.leader, leaderPriority: prio });
|
||||||
}
|
}
|
||||||
|
|
||||||
_onReceiveVote(from, msg)
|
_onReceiveVote(from, msg)
|
||||||
|
|
Loading…
Reference in New Issue