Skip to content

Commit 8f9b0be

Browse files
authored
Merge pull request #5590 from nextcloud/fix/noid/session-mass-sync
fix: Safeguard sync requests to hopefully not spam then server
2 parents b730cc2 + 6f95d66 commit 8f9b0be

1 file changed

Lines changed: 18 additions & 3 deletions

File tree

src/sessions.js

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ const SESSION_INTERVAL = 90 // in seconds
2727

2828
let hasPush = false
2929

30+
let syncRunning = false
31+
3032
/**
3133
* used to verify, whether an event is originated by ourselves
3234
*
@@ -103,12 +105,24 @@ export function createSession(boardId) {
103105
create()
104106
return
105107
}
108+
109+
if (syncRunning) {
110+
return
111+
}
112+
106113
try {
114+
syncRunning = true
107115
await sessionApi.syncSession(boardId, await tokenPromise)
108116
} catch (err) {
109-
// session probably expired, let's
110-
// create a fresh session
111-
create()
117+
if (err.response.status === 404) {
118+
// session probably expired, let's
119+
// create a fresh session
120+
create()
121+
} else {
122+
console.error('Failed to sync deck session', err)
123+
}
124+
} finally {
125+
syncRunning = false
112126
}
113127
}
114128

@@ -134,6 +148,7 @@ export function createSession(boardId) {
134148
store.dispatch('refreshBoard', store.state.currentBoard?.id)
135149

136150
// restart session refresh interval
151+
clearInterval(interval)
137152
interval = setInterval(ensureSession, SESSION_INTERVAL * 1000)
138153
}
139154
}

0 commit comments

Comments
 (0)