Additional logging, more reliable contact/group sync fetch
This commit is contained in:
parent
8e1a30d720
commit
efc237d106
11 changed files with 86 additions and 16 deletions
|
@ -241,6 +241,8 @@ export class SignalProtocolStore extends EventEmitter {
|
|||
|
||||
sessionQueues = new Map<SessionIdType, PQueue>();
|
||||
|
||||
sessionQueueJobCounter = 0;
|
||||
|
||||
private readonly identityQueues = new Map<UUIDStringType, PQueue>();
|
||||
|
||||
private currentZone?: Zone;
|
||||
|
@ -703,13 +705,31 @@ export class SignalProtocolStore extends EventEmitter {
|
|||
|
||||
async enqueueSessionJob<T>(
|
||||
qualifiedAddress: QualifiedAddress,
|
||||
name: string,
|
||||
task: () => Promise<T>,
|
||||
zone: Zone = GLOBAL_ZONE
|
||||
): Promise<T> {
|
||||
this.sessionQueueJobCounter += 1;
|
||||
const id = this.sessionQueueJobCounter;
|
||||
|
||||
const waitStart = Date.now();
|
||||
|
||||
return this.withZone(zone, 'enqueueSessionJob', async () => {
|
||||
const queue = this._getSessionQueue(qualifiedAddress);
|
||||
|
||||
return queue.add<T>(task);
|
||||
const waitTime = Date.now() - waitStart;
|
||||
log.info(
|
||||
`enqueueSessionJob(${id}): queuing task ${name}, waited ${waitTime}ms`
|
||||
);
|
||||
const queueStart = Date.now();
|
||||
|
||||
return queue.add<T>(() => {
|
||||
const queueTime = Date.now() - queueStart;
|
||||
log.info(
|
||||
`enqueueSessionJob(${id}): running task ${name}, waited ${queueTime}ms`
|
||||
);
|
||||
return task();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -1322,6 +1342,7 @@ export class SignalProtocolStore extends EventEmitter {
|
|||
|
||||
await this.enqueueSessionJob(
|
||||
addr,
|
||||
`_archiveSession(${addr.toString()})`,
|
||||
async () => {
|
||||
const item = entry.hydrated
|
||||
? entry.item
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue