code: @SneakyThrows
      private Integer tryReuseWorkerId() {
          val pidWorkerIds = jedis.lrange(PREFIX_PID, 0, -1);
          if (pidWorkerIds.size() == 0) {
              return null;
          }
  
          boolean locked = jedis.setnx(PREFIX_LOK, Pid.getPid() + "") == 1;
          if (!locked) {
              return null;
          }
          @Cleanup
          val i = new Closeable() {
              @Override
              public void close() {
                  jedis.del(PREFIX_LOK);
              }
          };
  
          val workerId = findUsableWorkerId(pidWorkerIds);
          if (workerId == null) {
              return null;
          }
  
          jedis.set(PREFIX_USE + workerId, Pid.getPid() + "x" + Os.IP_STRING + "x" + Os.HOSTNAME);
          return Integer.parseInt(workerId);
      }
docs: /*
  先从workerId:pid:{ip}=[{pid}x{workerId},{pid}x{workerId}]中取出列表，
  然后逐个检查，pid所代表的进程是否存在，如果不存在，则从列表中删除，留最后一个，其它全部删除
  workerId:use:{workerId}，留的一个即为重用的workerId。