From 4b690c94bb7d09e5e23fb02c9cf22bb05a9a2802 Mon Sep 17 00:00:00 2001 From: shulkaolka Date: Wed, 2 Jul 2025 15:14:58 +0300 Subject: [PATCH] add rate limit handling to trigger and action execution --- templates/lib/actions/action.js | 7 +++++++ templates/lib/triggers/trigger.js | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/templates/lib/actions/action.js b/templates/lib/actions/action.js index 340b786..aad2d8b 100644 --- a/templates/lib/actions/action.js +++ b/templates/lib/actions/action.js @@ -103,6 +103,13 @@ async function processAction(msg, cfg, snapshot, incomingMessageHeaders, tokenDa const resp = await executeCall.call(this, callParams); + // Wait for rate limit if specified + const rateLimit = cfg.nodeSettings && cfg.nodeSettings.rateLimit ? parseInt(cfg.nodeSettings.rateLimit) : 1700; + if (rateLimit > 0) { + this.logger.info(`Waiting for rate limit: ${rateLimit} ms`); + await new Promise(resolve => setTimeout(resolve, rateLimit)); + } + const newElement = {}; newElement.metadata = getMetadata(msg.metadata); newElement.data = resp.body; diff --git a/templates/lib/triggers/trigger.js b/templates/lib/triggers/trigger.js index bf6a5c1..44eab56 100644 --- a/templates/lib/triggers/trigger.js +++ b/templates/lib/triggers/trigger.js @@ -150,6 +150,13 @@ async function processTrigger(msg, cfg, snapshot, incomingMessageHeaders, tokenD do { const { body, headers } = await executeCall.call(this, callParams); + // Wait for rate limit if specified + const rateLimit = cfg.nodeSettings && cfg.nodeSettings.rateLimit ? parseInt(cfg.nodeSettings.rateLimit) : 1700; + if (rateLimit > 0) { + this.logger.info(`Waiting for rate limit: ${rateLimit} ms`); + await new Promise(resolve => setTimeout(resolve, rateLimit)); + } + const newElement = {}; newElement.metadata = getMetadata(msg.metadata); newElement.data = getElementDataFromResponse.call(this, arraySplittingKey, body);