private void SendNextSdkClickI() { if (_isPaused) { return; } if (_packageQueue.Count == 0) { return; } var sdkClickPackage = _packageQueue.Dequeue(); int retries = sdkClickPackage.Retries; Action action = () => { _requestHandler.SendPackageSync(sdkClickPackage, _packageQueue.Count - 1); SendNextSdkClick(); }; if (retries <= 0) { action.Invoke(); return; } var waitTime = Util.WaitingTime(retries, _backoffStrategy); _logger.Verbose("Waiting for {0} seconds before retrying sdk_click for the {1} time", Util.SecondDisplayFormat(waitTime), retries); _actionQueue.Delay(waitTime, action); }
public void CloseFirstPackage(ResponseData responseData, ActivityPackage activityPackage) { _activityHandler.FinishedTrackingActivity(responseData); Action action = () => { _logger.Verbose("Package handler can send"); _internalWaitHandle.Set(); // open the door (signals the wait handle) SendFirstPackage(); }; int retries = activityPackage.IncreaseRetries(); var waitTime = Util.WaitingTime(retries, _backoffStrategy); _logger.Verbose("Waiting for {0} seconds before retrying for the {1} time", Util.SecondDisplayFormat(waitTime), retries); _actionQueue.Delay(waitTime, action); }