1

この古いコードは、もはや存在しないgevent.spawn_link_exceptionを呼び出します。

def start(self, checkpoint=None):
    for gl in self._greenlets:
        gl.kill()
    self.load_config()
    self._greenlets = [
        gevent.spawn_link_exception(self.periodic_checkpoint, 5) ]
    for master_uri in self._config:
        self._greenlets.append(
            gevent.spawn_link_exception(
                self.replicate, master_uri, checkpoint))

gevent の最新バージョンで動作するように、このコードを更新するのを手伝ってください。ありがとう。

4

1 に答える 1

1

Greenlet.link_exceptionメソッドを介して同じことにアプローチできます。変更された例は次のとおりです。

  def start(self, checkpoint=None):
      for gl in self._greenlets:
          gl.kill()
      self.load_config()

      def exception_callback(greenlet):
          print "Exception happened in ", greenlet

      self._greenlets = [gevent.spawn(self.periodic_checkpoint, 5)]
      self._greenlets[-1].link_exception(exception_callback)

      for master_uri in self._config:
          self._greenlets.append(gevent.spawn(self.replicate, master_uri, checkpoint))
          self._greenlets[-1].link_exception(exception_callback)
于 2015-01-20T10:03:10.623 に答える