Commit e343388d00223d0ecdb627488555904eec45c6c0

Authored by Adhidarma Hadiwinoto
1 parent f9cc9b6420
Exists in master

resend delay

Showing 2 changed files with 35 additions and 3 deletions Side-by-side Diff

... ... @@ -141,7 +141,7 @@ function processPartnerResponseBody(body, task) {
141 141 handler: config.handler_name,
142 142 amount: responseHarga,
143 143 balance: responseBalance,
144   - core_task: task,
  144 + task: task,
145 145 raw: body
146 146 }
147 147  
... ... @@ -48,7 +48,8 @@ function _requestToPartner(task, pendingOnError) {
48 48 trx_id: task.trx_id,
49 49 rc: rc,
50 50 message: 'Error requesting to partner: ' + err,
51   - handler: config.handler_name
  51 + handler: config.handler_name,
  52 + task: task
52 53 })
53 54  
54 55 return;
... ... @@ -62,7 +63,8 @@ function _requestToPartner(task, pendingOnError) {
62 63 trx_id: task.trx_id,
63 64 rc: rc,
64 65 message: 'Partner returning HTTP STATUS CODE ' + res.statusCode + ' instead of 200',
65   - handler: config.handler_name
  66 + handler: config.handler_name,
  67 + task: task
66 68 })
67 69  
68 70 return;
... ... @@ -77,6 +79,36 @@ function _requestToPartner(task, pendingOnError) {
77 79 */
78 80 function reportToCore(data) {
79 81 pull.report(data);
  82 +
  83 + let delay = 60 * 1000;
  84 + if (config.auto_resend.delay_ms) {
  85 + delay = Number(config.auto_resend.delay_ms);
  86 + }
  87 +
  88 + let max_retry = 60;
  89 + if (config.auto_resend.max_retry) {
  90 + max_retry = Number(config.auto_resend.max_retry);
  91 + }
  92 +
  93 + if (data && data.task && data.rc == '68') {
  94 + setTimeout(
  95 + function() {
  96 +
  97 + if (data.task.remaining_retry === undefined) {
  98 + data.task.remaining_retry = max_retry;
  99 + }
  100 +
  101 + if (data.task.remaining_retry--) {
  102 + logger.verbose('Got pending status, retrying', {task: data.task});
  103 + statusCheck(data.task);
  104 + }
  105 + else {
  106 + logger.verbose('Exceeding retry pending status', {task: data.task});
  107 + }
  108 + },
  109 + delay
  110 + )
  111 + }
80 112 }
81 113  
82 114 exports.buy = buy;