ray.util.ActorPool.submit#

ActorPool.submit(fn, value)[源代码]#

在池中安排一个任务运行。

这与 map() 具有相同的参数语义,但只接受一个值而不是一个值列表。结果可以通过 get_next() / get_next_unordered() 获取。

参数:
  • fn – 接受 (actor, value) 作为参数并返回一个 ObjectRef 计算结果的函数。在 ObjectRef 完成之前,actor 将被视为忙碌。

  • value – 用于计算结果的值。

示例

import ray
from ray.util.actor_pool import ActorPool

@ray.remote
class Actor:
    def double(self, v):
        return 2 * v

a1, a2 = Actor.remote(), Actor.remote()
pool = ActorPool([a1, a2])
pool.submit(lambda a, v: a.double.remote(v), 1)
pool.submit(lambda a, v: a.double.remote(v), 2)
print(pool.get_next(), pool.get_next())
2 4