anchor.diff:                                                              batch_of_msgs = BatchOfMsgs,
                                                               interval = Interval} = State) ->
       gen_fsm:reply(From, ok),
  -    NextStatus = ?ST_RUNNING,
       ok = run(Id),
  -    ok = leo_mq_publisher:update_consumer_stats(PublisherId, NextStatus, BatchOfMsgs, Interval),
  -    {next_state, NextStatus, State#state{status = NextStatus}, ?DEF_TIMEOUT};
  -suspending(#event_info{event = ?EVENT_STATE}, From, State) ->
  -    NextStatus = ?ST_SUSPENDING,
  -    gen_fsm:reply(From, {ok, NextStatus}),
  -    {next_state, NextStatus, State#state{status = NextStatus}, ?DEF_TIMEOUT};
  +    ok = leo_mq_publisher:update_consumer_stats(PublisherId, ?ST_RUNNING, BatchOfMsgs, Interval),
  +    {next_state, ?ST_RUNNING, State#state{status = ?ST_RUNNING}, ?DEF_TIMEOUT};
  +suspending(#event_info{event = ?EVENT_STATE}, From, #state{status = Status} = State) ->
  +    gen_fsm:reply(From, {ok, Status}),
  +    {next_state, ?ST_SUSPENDING, State#state{status = ?ST_SUSPENDING}, ?DEF_TIMEOUT};
   suspending(_Other, From, State) ->
  -    NextStatus = ?ST_SUSPENDING,
       gen_fsm:reply(From, {error, badstate}),
  -    {next_state, NextStatus, State, ?DEF_TIMEOUT}.
  +    {next_state, ?ST_SUSPENDING, State#state{status = ?ST_SUSPENDING}, ?DEF_TIMEOUT}.
   
   
   %%--------------------------------------------------------------------
  
positive.code:                                          batch_of_msgs = BatchOfMsgs_1,
                                           interval = Interval_1}, ?DEF_TIMEOUT};
  suspending(_, State) ->
      NextStatus = ?ST_SUSPENDING,
      {next_state, NextStatus, State#state{status = NextStatus}, ?DEF_TIMEOUT}.
  
  -spec(suspending(EventInfo, From, State) ->
               {next_state, ?ST_SUSPENDING | ?ST_RUNNING, State} when EventInfo::#event_info{},
  
negative.code:              {next_state, ?ST_SUSPENDING, State} when EventInfo::#event_info{},
                                                        State::#state{}).
  suspending(#event_info{event = ?EVENT_RUN}, State) ->
      {next_state, ?ST_SUSPENDING, State#state{status = ?ST_SUSPENDING}, ?DEF_TIMEOUT};
  
  suspending(#event_info{event = ?EVENT_STATE}, State) ->
      {next_state, ?ST_SUSPENDING, State#state{status = ?ST_SUSPENDING}, ?DEF_TIMEOUT};
  
  suspending(#event_info{event = ?EVENT_INCR},
             #state{id = Id,
  