提交 f898a20a 编写于 作者: Huan (李卓桓)'s avatar Huan (李卓桓)

make payload cache expire more explict

上级 2925d4f1
......@@ -545,7 +545,10 @@ export class Contact extends Accessory implements Sayable {
}
try {
await this.puppet.contactPayload(this.id, dirty)
if (dirty) {
await this.puppet.contactPayloadDirty(this.id)
}
await this.puppet.contactPayload(this.id)
// log.silly('Contact', `ready() this.puppet.contactPayload(%s) resolved`, this)
} catch (e) {
......
......@@ -347,7 +347,10 @@ export class Firer {
*/
this.puppet.emit('room-leave', roomId , [leaverContactId], removerContactId)
setTimeout(_ => this.puppet.roomPayload(roomId, true), 10 * 1000) // reload the room data, especially for memberList
setTimeout(async _ => {
await this.puppet.roomPayloadDirty(roomId)
await this.puppet.roomPayload(roomId)
}, 10 * 1000) // reload the room data, especially for memberList
return true
}
......
......@@ -372,7 +372,7 @@ export abstract class Puppet extends EventEmitter implements Sayable {
public abstract async contactRawPayload(contactId: string) : Promise<any>
public abstract async contactRawPayloadParser(rawPayload: any) : Promise<ContactPayload>
protected async contactPayloadDirty(contactId: string): Promise<void> {
public async contactPayloadDirty(contactId: string): Promise<void> {
log.verbose('Puppet', 'contactPayloadDirty(%s)', contactId)
this.cacheContactPayload.del(contactId)
}
......@@ -525,7 +525,7 @@ export abstract class Puppet extends EventEmitter implements Sayable {
return cachedPayload
}
protected async friendshipPayloadDirty(friendshipId: string): Promise<void> {
public async friendshipPayloadDirty(friendshipId: string): Promise<void> {
log.verbose('Puppet', 'friendshipPayloadDirty(%s)', friendshipId)
this.cacheFriendshipPayload.del(friendshipId)
}
......@@ -587,7 +587,7 @@ export abstract class Puppet extends EventEmitter implements Sayable {
return cachedPayload
}
protected async messagePayloadDirty(messageId: string): Promise<void> {
public async messagePayloadDirty(messageId: string): Promise<void> {
log.verbose('Puppet', 'messagePayloadDirty(%s)', messageId)
this.cacheMessagePayload.del(messageId)
}
......@@ -800,7 +800,7 @@ export abstract class Puppet extends EventEmitter implements Sayable {
return cachedPayload
}
protected async roomPayloadDirty(roomId: string): Promise<void> {
public async roomPayloadDirty(roomId: string): Promise<void> {
log.verbose('Puppet', 'roomPayloadDirty(%s)', roomId)
this.cacheRoomPayload.del(roomId)
}
......@@ -841,7 +841,7 @@ export abstract class Puppet extends EventEmitter implements Sayable {
return contactId + '@@@' + roomId
}
protected async roomMemberPayloadDirty(roomId: string): Promise<void> {
public async roomMemberPayloadDirty(roomId: string): Promise<void> {
log.verbose('Puppet', 'roomMemberPayloadDirty(%s)', roomId)
const contactIdList = await this.roomMemberList(roomId)
......
......@@ -248,7 +248,10 @@ export class Room extends Accessory implements Sayable {
return
}
await this.puppet.roomPayload(this.id, dirty)
if (dirty) {
await this.puppet.roomPayloadDirty(this.id)
}
await this.puppet.roomPayload(this.id)
const memberIdList = await this.puppet.roomMemberList(this.id)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册