anchor.diff:                  {_,State_1} = after_execute({error, Cause}, State),
                   {?ST_IDLING,  State_1};
               {error, short_interval} ->
  -                %% {_,State_1} = after_execute(ok, State),
  +                {_,_} = after_execute(ok, State),
                   {?ST_RUNNING,  State};
               %% An epected error has occured
               {error, Cause} ->
  
positive.code:                                   mod_callback = Mod},
                 named_mqdb_pid = NamedMqDbPid,
                 batch_of_msgs  = NumOfBatchProcs,
                 prev_proc_time = PrevProcTime} = _State) ->
      ThisTime = leo_date:clock(),
      Diff = erlang:round((ThisTime - PrevProcTime) / 1000),
  
      case (Diff >= ?DEF_CONSUME_MIN_INTERVAL) of
          true ->
              NumOfBatchProcs_1 = leo_math:ceiling(NumOfBatchProcs / NumOfProcs),
              consume(PublisherId, Mod, NamedMqDbPid, NumOfBatchProcs_1);
  
negative.code: -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]).
  
  