Refactor handshake message handling using bach writing
This commit is contained in:
parent
a027004bd0
commit
5192745a48
@ -1280,7 +1280,21 @@ export default class Services {
|
||||
|
||||
setTimeout(async () => {
|
||||
const newProcesses: OutPointProcessMap = handshakeMsg.processes_list;
|
||||
if (newProcesses && Object.keys(newProcesses).length !== 0) {
|
||||
if (!newProcesses || Object.keys(newProcesses).length === 0) {
|
||||
console.debug('Received empty processes list from', url);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.processesCache && Object.keys(this.processesCache).length === 0) {
|
||||
// We restored db but cache is empty, meaning we're starting from scratch
|
||||
try {
|
||||
await this.batchSaveProcessesToDb(newProcesses);
|
||||
} catch (e) {
|
||||
console.error('Failed to save processes to db:', e);
|
||||
}
|
||||
} else {
|
||||
// We need to update our processes with what relay provides
|
||||
const toSave: Record<string, Process> = {};
|
||||
for (const [processId, process] of Object.entries(newProcesses)) {
|
||||
const existing = await this.getProcess(processId);
|
||||
if (existing) {
|
||||
@ -1300,6 +1314,7 @@ export default class Services {
|
||||
if (new_states.length != 0) {
|
||||
// We request the new states
|
||||
await this.requestDataFromPeers(processId, new_states, roles);
|
||||
toSave[processId] = process;
|
||||
}
|
||||
|
||||
// Just to be sure check if that's a pairing process
|
||||
@ -1329,9 +1344,11 @@ export default class Services {
|
||||
} else {
|
||||
// We add it to db
|
||||
console.log(`Saving ${processId} to db`);
|
||||
await this.saveProcessToDb(processId, process as Process);
|
||||
toSave[processId] = process;
|
||||
}
|
||||
}
|
||||
|
||||
await this.batchSaveProcessesToDb(toSave);
|
||||
}
|
||||
}, 500)
|
||||
} catch (e) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user