【问题标题】:Use Actor Class both local and remote使用本地和远程的 Actor 类
【发布时间】:2021-06-20 02:00:38
【问题描述】:

我想在本地/单进程和远程/多进程场景中使用类。 到目前为止我得到的是:

@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()

【问题讨论】:

    标签: python local remote-access ray


    【解决方案1】:

    我所做的是(将 save() 替换为 set(),之前使用文件的示例使其更容易掌握)

    居然是3个case而不是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)
    

    【讨论】:

      猜你喜欢
      • 2015-09-09
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 2016-08-21
      • 1970-01-01
      • 2012-04-24
      • 2022-01-05
      相关资源
      最近更新 更多