Keep follow sync trickling
This commit is contained in:
+22
-15
@@ -252,25 +252,29 @@ const syncUserData = () => {
|
|||||||
loadFeedsForPubkey(pubkey)
|
loadFeedsForPubkey(pubkey)
|
||||||
}
|
}
|
||||||
|
|
||||||
const syncFollowList = () => {
|
const syncFollowList = async (signal: AbortSignal) => {
|
||||||
for (const pubkeys of chunk(10, get(bootstrapPubkeys))) {
|
for (const pubkeys of chunk(10, get(bootstrapPubkeys))) {
|
||||||
void (async () => {
|
if (signal.aborted) return
|
||||||
// This isn't urgent, avoid clogging other stuff up
|
|
||||||
await sleep(1000)
|
|
||||||
|
|
||||||
await Promise.all(
|
// This isn't urgent, avoid clogging other stuff up
|
||||||
pubkeys.flatMap(pk => [
|
await sleep(1000)
|
||||||
loadRelayList(pk),
|
|
||||||
loadGroupList(pk),
|
if (signal.aborted) return
|
||||||
loadProfile(pk),
|
|
||||||
loadFollowList(pk),
|
await Promise.all(
|
||||||
loadMuteList(pk),
|
pubkeys.flatMap(pk => [
|
||||||
]),
|
loadRelayList(pk),
|
||||||
)
|
loadGroupList(pk),
|
||||||
})()
|
loadProfile(pk),
|
||||||
|
loadFollowList(pk),
|
||||||
|
loadMuteList(pk),
|
||||||
|
]),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let bootstrapFollowController = new AbortController()
|
||||||
|
|
||||||
const unsubscribeGroupList = merged([userGroupList]).subscribe(([$userGroupList]) => {
|
const unsubscribeGroupList = merged([userGroupList]).subscribe(([$userGroupList]) => {
|
||||||
syncGroupList($userGroupList)
|
syncGroupList($userGroupList)
|
||||||
})
|
})
|
||||||
@@ -280,10 +284,13 @@ const syncUserData = () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const unsubscribeFollows = merged([userFollowList]).subscribe(() => {
|
const unsubscribeFollows = merged([userFollowList]).subscribe(() => {
|
||||||
syncFollowList()
|
bootstrapFollowController.abort()
|
||||||
|
bootstrapFollowController = new AbortController()
|
||||||
|
void syncFollowList(bootstrapFollowController.signal)
|
||||||
})
|
})
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
|
bootstrapFollowController.abort()
|
||||||
unsubscribersByKey.forEach(call)
|
unsubscribersByKey.forEach(call)
|
||||||
unsubscribeGroupList()
|
unsubscribeGroupList()
|
||||||
unsubscribeRelayList()
|
unsubscribeRelayList()
|
||||||
|
|||||||
Reference in New Issue
Block a user