feat: defensieve spreiding tussen pagina's (MEDIA_SEND_DELAY_MS, default 500ms)

This commit is contained in:
Eddy de Vink 2026-09-25 09:03:48 +02:00
commit 2c942c6f76
2 changed files with 9 additions and 1 deletions

View file

@ -25,6 +25,7 @@ MAX_REQUESTS_PER_DAY=5
ACK_STUCK_TIMEOUT_MS=300000 # 5 min zonder ack 2 = stuck ACK_STUCK_TIMEOUT_MS=300000 # 5 min zonder ack 2 = stuck
ACK_PRUNED_AFTER_MS=1800000 # 30 min: stale trackings opruimen (loop stopt dan) ACK_PRUNED_AFTER_MS=1800000 # 30 min: stale trackings opruimen (loop stopt dan)
ACK_CHECK_INTERVAL_MS=30000 # checkinterval (alleen actief als er iets pending is) ACK_CHECK_INTERVAL_MS=30000 # checkinterval (alleen actief als er iets pending is)
MEDIA_SEND_DELAY_MS=500 # pauze tussen pagina's van een dienst (niet vóór de eerste)
# Admin notifications # Admin notifications
ADMIN_NUMBER=31612345678@c.us ADMIN_NUMBER=31612345678@c.us

View file

@ -74,7 +74,14 @@ async function handleWebhook(payload) {
return return
} }
for (const pngPath of pngPaths) { // Defensieve spreiding tussen pagina's (niet vóór de eerste): verlaagt de kans op
// gelijktijdige storage/upload-conflicten in de wwebjs-media-pipeline.
const mediaSendDelayMs = parseInt(process.env.MEDIA_SEND_DELAY_MS, 10) || 500
for (let i = 0; i < pngPaths.length; i++) {
const pngPath = pngPaths[i]
if (i > 0 && mediaSendDelayMs > 0) {
await new Promise(resolve => setTimeout(resolve, mediaSendDelayMs))
}
const filename = pngPath.split('/').pop() const filename = pngPath.split('/').pop()
try { try {
await sendImageMessage(author, pngPath, filename) await sendImageMessage(author, pngPath, filename)