У меня есть кластер лучей, работающий на компьютере, как показано ниже:
ray start --head --redis-port=6379
У меня есть два файла, которые нужно запустить в кластере. Producer p_ray.py:
import ray
ray.init(address='auto', redis_password='5241590000000000')
@ray.remote
class Counter(object):
def __init__(self):
self.n = 0
def increment(self):
self.n += 1
def read(self):
return self.n
counters = [Counter.remote() for i in range(4)]
[c.increment.remote() for c in counters]
futures = [c.read.remote() for c in counters]
print(futures, type(futures[0]))
obj_id = ray.put(ray.get(futures))
print(obj_id)
print(ray.get(obj_id))
while True:
pass
Consumer c_ray.py:
import ray
ray.init(address='auto', redis_password='5241590000000000')
[objs] = ray.objects()
print('OBJ-ID:', objs, 'TYPE:', type(objs))
print(ray.get([objs]))
Мое намерение состоит в том, чтобы сохранить объекты-фьючерсы от производителя и извлечь их у потребителя. Я могу получить идентификатор объекта в потребителе. Однако доход от потребителя никогда не вернется.
Что я делаю не так?
Как мне решить мое требование?