def perform(request, actor, method, idempotent)
      @dispatched_cache.store(request.token) if @dispatched_cache && !idempotent
      if actor.method(method).arity.abs == 1
        actor.send(method, request.payload)
      else
        actor.send(method, request.payload, request)
      end
    rescue StandardError => e
      ErrorTracker.log(self, "Failed dispatching #{request.trace}", e, request)
      @dispatch_failure_stats.update("#{request.type}->#{e.class.name}")
      OperationResult.error("Could not handle #{request.type} request", e)
    end
def perform(request, actor, method, idempotent)
      @dispatched_cache.store(request.token) if @dispatched_cache && !idempotent
      if actor.method(method).arity.abs == 1
        actor.send(method, request.payload)
      else
        actor.send(method, request.payload, request)
      end
    rescue StandardError => e
      ErrorTracker.log(self, "Failed dispatching #{request.trace}", e, request)
      @dispatch_failure_stats.update("#{request.type}->#{e.class.name}")
      OperationResult.error("Could not handle #{request.type} request", e)
    end
Perform requested action

 === Parameters
 request(Push|Request):: Packet containing request
 token(String):: Unique identity token for request
 method(String):: Actor method requested to be performed
 idempotent(Boolean):: Whether this method is idempotent

 === Return
 (OperationResult):: Result from performing a request