anchor.diff:  -spec(defer_consume(atom(), pos_integer(), integer()) ->
                {ok, timer:tref()} | {error,_}).
   defer_consume(Id, MaxInterval, MinInterval) ->
  -    defer_consume(Id, MaxInterval, MinInterval, false).
  -
  --spec(defer_consume(atom(), pos_integer(), integer(), boolean()) ->
  -             {ok, timer:tref()} | {error,_}).
  -defer_consume(Id, MaxInterval, MinInterval,_FromHandleInfo) ->
       Time = interval(Id, MinInterval, MaxInterval),
       timer:apply_after(Time, ?MODULE, run, [Id]).
   
  
positive.code: %% @doc after processing of consumption messages
  %% @private
  after_execute(Ret, #state{id = Id,
                            interval = Interval,
                            prev_proc_time = PrevProcTime} = State) ->
      ThisTime = leo_date:clock(),
      Diff = erlang:round((ThisTime - PrevProcTime) / 1000),
      case (Diff > Interval) of
          true ->
              _ = defer_consume(Id, ?DEF_CHECK_MAX_INTERVAL_2,
                                ?DEF_CHECK_MIN_INTERVAL_2);
  
negative.code:                                  _ ->
                                       Interval
                               end,
                  timer:sleep(Interval_1),
                  run(Id),
                  {?ST_RUNNING,  State};
              %% Reached end of the object-container
              not_found ->
  