code: def cast(self, method, args={}, declare=None, retry=None,
               retry_policy=None, type=None, exchange=None, **props):
          
          retry = self.retry if retry is None else retry
          body = {'class': self.name, 'method': method, 'args': args}
  
          _retry_policy = self.retry_policy
          if retry_policy:  # merge default and custom policies.
              _retry_policy = dict(_retry_policy, **retry_policy)
  
          if type and type not in self.types:
              raise ValueError('Unsupported type: {0}'.format(type))
          elif not type:
              type = ACTOR_TYPE.DIRECT
  
          props.setdefault('routing_key', self.routing_key)
          props.setdefault('serializer', self.serializer)
          exchange = exchange or self.type_to_exchange[type]()
          declare = (maybe_list(declare) or []) + [exchange]
          with producers[self._connection].acquire(block=True) as producer:
              return producer.publish(body, exchange=exchange, declare=declare,
                                      retry=retry, retry_policy=retry_policy,
                                      **props)
docs: Send message to actor.  Discarding replies.