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);
          return PoolUtils.doWorkInPoolNicely(this.jedisPool, new PoolWork<Jedis, String>() {
              /**
               * {@inheritDoc}
               */
              @Override
              public String doWork(final Jedis jedis) {
                  switch (nextQueueStrategy) {
                      case DRAIN_WHILE_MESSAGES_EXISTS:
                          return (String) jedis.evalsha(popScriptHash.get(), 3, key, inflightKey,
                                  JesqueUtils.createRecurringHashKey(key), now);
                      case RESET_TO_HIGHEST_PRIORITY:
                          return (String) jedis.evalsha(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