如何解决使用本地和远程的 Actor 类
我想在本地/单进程和远程/多进程场景中使用类。 到目前为止我得到的是:
@ray.remote
class BlahRemote(Blah): pass
class Blah(object):
def save(self,line):
if self.is_writer : self.file.write(line)
else : self.writer.save.remote(line)
我想做的是这样的:
def save(self,line):
if self.is_writer : self.file.write(line)
else :
if RAY.ISREMOTE(self.writer) : self.writer.save.remote(line)
else : self.writer.save(line)
有没有办法做这个检查 RAY.ISREMOTE()
解决方法
我所做的是这个(用set()替换save(),之前使用的文件示例使其更容易掌握)
出人意料的是有 3 种情况而不是 2 种,漏掉了 Reader 和 Writer 都在同一个进程中的情况。
def set(self,key,value):
if self.is_writer :
say('kvset',f'local-writer-set> {key} => {value}')
self.store.set_kv(key,value)
else :
if str(self.writer).startswith('Actor') :
say('kvset',f'remote-set> {key} => {value}')
self.writer.set.remote(key,value)
else :
say('kvset',f'local-reader-set> {key} => {value}')
self.writer.set(key,value)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。