docs: @Override
      public IQueueMessage<ID, DATA> take() throws QueueException.EphemeralIsFull {
          if (!isEphemeralDisabled()) {
              int ephemeralMaxSize = getEphemeralMaxSize();
              if (ephemeralMaxSize > 0 && ephemeralSize() >= ephemeralMaxSize) {
                  throw new QueueException.EphemeralIsFull(ephemeralMaxSize);
              }
          }
          try (Jedis jedis = getJedisConnector().getJedis()) {
              long now = System.currentTimeMillis();
              Object response = jedis.eval(getScriptTake(), 0, String.valueOf(now));
              if (response == null) {
                  return null;
              }
              return deserialize(response instanceof byte[] ? (byte[]) response
                      : response.toString().getBytes(QueueUtils.UTF8));
          }
      }