Commit 2ab44488992212336d81560643b9283ff310aff7

Authored by Adhidarma Hadiwinoto
1 parent 0652d16768
Exists in master and in 1 other branch ad2mt

sleepAndResend

Showing 1 changed file with 21 additions and 2 deletions Side-by-side Diff

... ... @@ -97,8 +97,25 @@ function init(cb) {
97 97 createHttpServer();
98 98 }
99 99  
100   -function send(partner, msg, params) {
101   - logger.verbose('Got response from CORE', {partner: partner, msg: msg, params: params});
  100 +function _sleepAndResend(partner, msg, params, retry) {
  101 + if (retry === null || retry === undefined) {
  102 + retry = Number(config.max_send_retry) || 5;
  103 + }
  104 +
  105 + if (retry > 0) {
  106 + setTimeout(
  107 + function() {
  108 + send(partner, msg, params, retry);
  109 + },
  110 + (Number(config.sleep_before_retry_secs) || 60) * 1000
  111 + )
  112 + }
  113 +}
  114 +
  115 +function send(partner, msg, params, retry) {
  116 + if (!retry) {
  117 + logger.verbose('Got response from CORE', {partner: partner, msg: msg, params: params});
  118 + }
102 119  
103 120 if (!params || !params.reverse_url) {
104 121 logger.verbose('Undefined reverse_url, not forwarding message to partner');
... ... @@ -115,11 +132,13 @@ function send(partner, msg, params) {
115 132 request(reqOptions, function(err, res, body) {
116 133 if (err) {
117 134 logger.warn('Error sending reverse report to partner', {request: reqOptions, err: err});
  135 + _sleepAndResend(partner, msg, params, retry);
118 136 return;
119 137 }
120 138  
121 139 if (res.statusCode != 200) {
122 140 logger.warn('Partner not returning HTTP status code 200 on reverse report', {request: reqOptions, http_status: res.statusCode});
  141 + _sleepAndResend(partner, msg, params, retry);
123 142 return;
124 143 }
125 144