6.3. 再接続の設定
再接続すると、クライアントが失われた接続から回復できます。これは、一時的なネットワークまたはコンポーネントの障害後に、分散システムのコンポーネントが再確立された状態にするために使用されます。
AMQ Python はデフォルトで再接続を有効にします。接続が失われたり、接続試行に失敗した場合に、クライアントは簡単な遅延後に再度試行します。遅延は、デフォルトの最大値 10 秒まで、新しい試行ごとに指数関数的に増加します。
再接続を無効にするには、reconnect
接続オプションを False
に設定します。
例: 再接続の無効化
container.connect("amqp://example.com", reconnect=False)
接続試行間の遅延を制御するには、reset()
メソッドおよび next()
メソッドを実装するクラスを定義し、reconnect
接続オプションをそのクラスのインスタンスに設定します。
例: 再接続の設定
class ExampleReconnect(object): def __init__(self): self.delay = 0 def reset(self): self.delay = 0 def next(self): if self.delay == 0: self.delay = 0.1 else: self.delay = min(10, 2 * self.delay) return self.delay container.connect("amqp://example.com", reconnect=ExampleReconnect())
next
メソッドは、次の遅延を秒単位で返します。reset
メソッドは、再接続プロセスが開始する前に一度呼び出されます。