diff --git a/index.js b/index.js index e0d0695..709adcf 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,5 @@ const DEFAULT_CORE_REQUEST_TIMEOUT = 5 * 1000; +const DEFAULT_SLEEP_AFTER_CORE_ERROR_MS = 3000; const MAX_REPORT_RETRY = 30; const REPORT_RETRY_SLEEP_MS = 2000; @@ -8,10 +9,12 @@ const config = require('komodo-sdk/config'); const coreUrl = require('komodo-sdk/core-url'); const logger = require('komodo-sdk/logger'); +const sleep = require('./lib/sleep'); + let partner; let first = true; let coreIsHealthy = null; -let skipNext = 0; +// let skipNext = 0; const DEFAULT_CORE_AXIOS_CONFIG = { headers: { 'Content-Type': 'application/json' }, @@ -34,12 +37,12 @@ function detectCoreStatusChange(isHealthy, url, err) { } async function getTask() { - if (!partner) return; + if (!partner) return null; - if (skipNext > 0) { - skipNext -= 1; - return; - } + // if (skipNext > 0) { + // skipNext -= 1; + // return null; + // } if (first) { first = false; @@ -65,11 +68,12 @@ async function getTask() { detectCoreStatusChange(true, coreEndpoint); task = result.data.task; } catch (e) { - skipNext = 3; + // skipNext = 3; detectCoreStatusChange(false, coreEndpoint, e); + await sleep(DEFAULT_SLEEP_AFTER_CORE_ERROR_MS); } - if (!task) return; + if (!task) return null; task.remote_product = ((config.remote_products || {})[task.product]) || task.product; @@ -77,10 +81,15 @@ async function getTask() { if (task.inquiry_only) { if (typeof partner.inquiry === 'function') partner.inquiry(task); - return; + return task; + } + + if (typeof partner.pay === 'function') { + partner.pay(task); + return task; } - if (typeof partner.pay === 'function') partner.pay(task); + return null; } const getTaskLooper = async () => { @@ -88,7 +97,7 @@ const getTaskLooper = async () => { setTimeout(() => { getTaskLooper(); - }, config,postpaid_pull_interval_ms || config.pull_interval_ms || 1000); + }, config.postpaid_pull_interval_ms || config.pull_interval_ms || 1000); }; exports.setPartner = (val) => { diff --git a/lib/sleep.js b/lib/sleep.js new file mode 100644 index 0000000..07c8881 --- /dev/null +++ b/lib/sleep.js @@ -0,0 +1,12 @@ +const sleep = async (ms) => new Promise((resolve) => { + if (!ms) { + resolve(); + return; + } + + setTimeout(() => { + resolve(); + }, ms); +}); + +module.exports = sleep;