code: protected String pop(final String curQueue) {
          final String key = key(QUEUE, curQueue);
          final String now = Long.toString(System.currentTimeMillis());
          final String inflightKey = key(INFLIGHT, this.name, curQueue);
          switch (nextQueueStrategy) {
              case DRAIN_WHILE_MESSAGES_EXISTS:
                  return (String) this.jedis.evalsha(this.popScriptHash.get(), 3, key, inflightKey,
                          JesqueUtils.createRecurringHashKey(key), now);
              case RESET_TO_HIGHEST_PRIORITY:
                  return (String) this.jedis.evalsha(this.multiPriorityQueuesScriptHash.get(), 3, curQueue, inflightKey, namespace, now);
              default:
                  throw new RuntimeException("Unimplemented 'nextQueueStrategy'");
          }
      }
docs: Remove a job from the given queue.
  
  @param curQueue the queue to remove a job from
  @return a JSON string of a job or null if there was nothing to de-queue