Пример #1
0
 def _schedule_function(self, task: ray_client_pb2.ClientTask,
                        context=None) -> ray_client_pb2.ClientTaskTicket:
     remote_func = self.lookup_or_register_func(
         task.payload_id, task.client_id,
         decode_options(task.baseline_options))
     arglist, kwargs = self._convert_args(task.args, task.kwargs)
     opts = decode_options(task.options)
     if opts is not None:
         remote_func = remote_func.options(**opts)
     with current_remote(remote_func):
         output = remote_func.remote(*arglist, **kwargs)
     ids = self.unify_and_track_outputs(output, task.client_id)
     return ray_client_pb2.ClientTaskTicket(return_ids=ids)
Пример #2
0
    def _schedule_actor(self, task: ray_client_pb2.ClientTask,
                        context=None) -> ray_client_pb2.ClientTaskTicket:
        remote_class = self.lookup_or_register_actor(
            task.payload_id, task.client_id,
            decode_options(task.baseline_options))

        arglist, kwargs = self._convert_args(task.args, task.kwargs)
        opts = decode_options(task.options)
        if opts is not None:
            remote_class = remote_class.options(**opts)
        with current_remote(remote_class):
            actor = remote_class.remote(*arglist, **kwargs)
        self.actor_refs[actor._actor_id.binary()] = actor
        self.actor_owners[task.client_id].add(actor._actor_id.binary())
        return ray_client_pb2.ClientTaskTicket(
            return_ids=[actor._actor_id.binary()])