2025年4月27日 星期日 农历 下月5日立夏 English | 简体中文 | 繁體中文
查询

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed()函数—用法及示例

「 它在拓扑关闭事件发生时被调用 」


函数名称:MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed()

函数描述:该函数是MongoDB PHP驱动程序的SDAMSubscriber类的方法之一。它在拓扑关闭事件发生时被调用。

适用版本:MongoDB PHP驱动程序2.4.0及更高版本。

用法:

public function topologyClosed(TopologyClosedEvent $event) : void

示例:

<?php

use MongoDB\Driver\Monitoring\SDAMSubscriber;
use MongoDB\Driver\Monitoring\TopologyClosedEvent;

class MySubscriber implements SDAMSubscriber
{
    public function topologyClosed(TopologyClosedEvent $event) : void
    {
        $topologyId = $event->getTopologyId();
        $serverList = $event->getServerList();

        echo "Topology with ID $topologyId has been closed.\n";
        echo "Affected servers:\n";

        foreach ($serverList as $server) {
            echo " - {$server->getHost()}:{$server->getPort()}\n";
        }
    }
}

// 创建一个SDAMSubscriber实例
$subscriber = new MySubscriber();

// 注册SDAMSubscriber实例
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$manager->subscribe($subscriber);

// 执行一些数据库操作...

// 注销SDAMSubscriber实例
$manager->unsubscribe($subscriber);

?>

说明:

  • 在上述示例中,我们创建了一个名为MySubscriber的类,该类实现了SDAMSubscriber接口,并重写了topologyClosed方法。
  • 在topologyClosed方法中,我们通过事件对象获取拓扑ID和受影响的服务器列表,并将它们打印出来。
  • 我们创建了一个SDAMSubscriber实例$subscriber,并使用MongoDB\Driver\Manager类的subscribe方法将其注册到MongoDB连接管理器中。
  • 在执行一些数据库操作后,我们使用unsubscribe方法将SDAMSubscriber实例注销掉,以停止接收拓扑关闭事件的通知。
补充纠错
热门PHP函数