@Override
    public void run() {
      try {
        while (total < finishTotal) {
          try {
            Thread.sleep(sleepDuration);
          } catch (InterruptedException ie) {
            break;
          }

          final CacheableValue myValue = datastore.get(myKey).elementAs(CacheableValue.class);
          datastore.put(
              myKey,
              ObjectSerializer.instance().writeObject(myValue.next()),
              300,
              TimeUnit.SECONDS);

          total++;
        }
      } catch (Exception ex) {
        ex.printStackTrace();
      }
    }