_playPendingRequests() {
    // If there is room to play bufferized requests, do it now. If not, retry later
    const quantityToInject = Math.min(
      this.pendingRequestsQueue.length,
      global.kuzzle.config.limits.concurrentRequests - this.concurrentRequests,
    );

    if (quantityToInject > 0) {
      for (let i = 0; i < quantityToInject; i++) {
        const pendingItem = this.pendingRequestsById.get(
          this.pendingRequestsQueue.peekFront(),
        );

        try {
          if (
            this.throttle(
              pendingItem.fn,
              pendingItem.context,
              pendingItem.request,
            )
          ) {
            this.pendingRequestsQueue.shift();
          } else {
            break;
          }
        } catch (error) {
          break;
        }
      }
    }

    if (this.pendingRequestsQueue.length > 0) {
      setTimeout(() => this._playPendingRequests(), 0);
    } else {
      const now = Date.now();
      // No request remaining in cache => stop the background task and return to normal behavior
      this.overloaded = false;

      if (
        this.overloadWarned &&
        (this.lastOverloadTime === 0 || this.lastOverloadTime < now - 500)
      ) {
        this.overloadWarned = false;
        global.kuzzle.log.info(
          "End of overloaded state. Resuming normal activity.",
        );
        this.lastOverloadTime = now;
      }
    }
  }
Background task. Checks if there are any requests in cache, and replay them
if Kuzzle is not overloaded anymore,