check cronId before executing syncChatwootLostMessages

This commit is contained in:
Andres Pache 2025-09-03 12:16:00 -03:00
parent c2085b59ea
commit 43cc6d3608

View File

@ -4357,7 +4357,18 @@ export class BaileysStartupService extends ChannelStartupService {
const prepare = (message: any) => this.prepareMessage(message); const prepare = (message: any) => this.prepareMessage(message);
this.chatwootService.syncLostMessages({ instanceName: this.instance.name }, chatwootConfig, prepare); this.chatwootService.syncLostMessages({ instanceName: this.instance.name }, chatwootConfig, prepare);
// Generate ID for this cron task and store in cache
const cronId = cuid();
const cronKey = `chatwoot:syncLostMessages`;
await this.chatwootService.getCache()?.hSet(cronKey, this.instance.name, cronId);
const task = cron.schedule('0,30 * * * *', async () => { const task = cron.schedule('0,30 * * * *', async () => {
// Check ID before executing (only if cache is available)
const cache = this.chatwootService.getCache();
if (cache) {
const storedId = await cache.hGet(cronKey, this.instance.name);
if (storedId && storedId !== cronId) return;
}
this.chatwootService.syncLostMessages({ instanceName: this.instance.name }, chatwootConfig, prepare); this.chatwootService.syncLostMessages({ instanceName: this.instance.name }, chatwootConfig, prepare);
}); });
task.start(); task.start();