라이브러리

[PHP] MongoDBDriverMonitoringCommandSubscriber::commandStarted - 시작된 명령에 대한 알림 방법




MongoDB Driver Monitoring Command Subscriber

MongoDB Driver Monitoring Command Subscriber는 MongoDB Driver의 내장 모니터링 기능입니다. 이 기능을 사용하면 MongoDB Driver의 Command가 시작되거나 종료될 때 이벤트를 수집할 수 있습니다. 이 이벤트를 사용하면 MongoDB Driver의 성능을 분석하거나 문제를 디버깅할 수 있습니다.

MongoDBDriverMonitoringCommandSubscriber 클래스

`MongoDBDriverMonitoringCommandSubscriber` 클래스는 `MongoDBDriverMonitoringCommandSubscriber` 인터페이스를 구현한 클래스입니다. 이 클래스는 Command가 시작되거나 종료될 때 이벤트를 수집합니다.

commandStarted() 메서드

`commandStarted()` 메서드는 Command가 시작될 때 호출됩니다. 이 메서드는 Command의 정보를 포함하는 `MongoDBDriverMonitoringCommandStartedEvent` 객체를 반환합니다.

#hostingforum.kr
php

use MongoDBDriverMonitoringCommandStartedEvent;

use MongoDBDriverMonitoringCommandSubscriber;



class MyCommandSubscriber implements CommandSubscriber

{

    public function commandStarted(CommandStartedEvent $event)

    {

        // Command의 정보를 수집합니다.

        $command = $event->getCommand();

        $server = $event->getServer();

        $requestId = $event->getRequestId();



        // Command의 정보를 로그에 기록합니다.

        echo "Command Started: " . $command->getCmd() . "
";

        echo "Server: " . $server->getHost() . "
";

        echo "Request ID: " . $requestId . "
";

    }

}



commandSucceeded() 메서드

`commandSucceeded()` 메서드는 Command가 성공적으로 종료될 때 호출됩니다. 이 메서드는 Command의 정보를 포함하는 `MongoDBDriverMonitoringCommandSucceededEvent` 객체를 반환합니다.

#hostingforum.kr
php

use MongoDBDriverMonitoringCommandSucceededEvent;

use MongoDBDriverMonitoringCommandSubscriber;



class MyCommandSubscriber implements CommandSubscriber

{

    public function commandSucceeded(CommandSucceededEvent $event)

    {

        // Command의 정보를 수집합니다.

        $command = $event->getCommand();

        $server = $event->getServer();

        $requestId = $event->getRequestId();



        // Command의 정보를 로그에 기록합니다.

        echo "Command Succeeded: " . $command->getCmd() . "
";

        echo "Server: " . $server->getHost() . "
";

        echo "Request ID: " . $requestId . "
";

    }

}



commandFailed() 메서드

`commandFailed()` 메서드는 Command가 실패할 때 호출됩니다. 이 메서드는 Command의 정보를 포함하는 `MongoDBDriverMonitoringCommandFailedEvent` 객체를 반환합니다.

#hostingforum.kr
php

use MongoDBDriverMonitoringCommandFailedEvent;

use MongoDBDriverMonitoringCommandSubscriber;



class MyCommandSubscriber implements CommandSubscriber

{

    public function commandFailed(CommandFailedEvent $event)

    {

        // Command의 정보를 수집합니다.

        $command = $event->getCommand();

        $server = $event->getServer();

        $requestId = $event->getRequestId();

        $exception = $event->getException();



        // Command의 정보를 로그에 기록합니다.

        echo "Command Failed: " . $command->getCmd() . "
";

        echo "Server: " . $server->getHost() . "
";

        echo "Request ID: " . $requestId . "
";

        echo "Exception: " . $exception->getMessage() . "
";

    }

}



사용 예제

#hostingforum.kr
php

use MongoDBDriverManager;

use MongoDBDriverMonitoringCommandSubscriber;



class MyCommandSubscriber implements CommandSubscriber

{

    public function commandStarted(CommandStartedEvent $event)

    {

        // Command의 정보를 수집합니다.

        $command = $event->getCommand();

        $server = $event->getServer();

        $requestId = $event->getRequestId();



        // Command의 정보를 로그에 기록합니다.

        echo "Command Started: " . $command->getCmd() . "
";

        echo "Server: " . $server->getHost() . "
";

        echo "Request ID: " . $requestId . "
";

    }



    public function commandSucceeded(CommandSucceededEvent $event)

    {

        // Command의 정보를 수집합니다.

        $command = $event->getCommand();

        $server = $event->getServer();

        $requestId = $event->getRequestId();



        // Command의 정보를 로그에 기록합니다.

        echo "Command Succeeded: " . $command->getCmd() . "
";

        echo "Server: " . $server->getHost() . "
";

        echo "Request ID: " . $requestId . "
";

    }



    public function commandFailed(CommandFailedEvent $event)

    {

        // Command의 정보를 수집합니다.

        $command = $event->getCommand();

        $server = $event->getServer();

        $requestId = $event->getRequestId();

        $exception = $event->getException();



        // Command의 정보를 로그에 기록합니다.

        echo "Command Failed: " . $command->getCmd() . "
";

        echo "Server: " . $server->getHost() . "
";

        echo "Request ID: " . $requestId . "
";

        echo "Exception: " . $exception->getMessage() . "
";

    }

}



$manager = new Manager("mongodb://localhost:27017");

$subscriber = new MyCommandSubscriber();



$manager->addSubscriber($subscriber);



$manager->executeCommand("mydb", new MongoDBBSONUTCDateTime());



이 예제에서는 `MyCommandSubscriber` 클래스를 구현하여 Command가 시작되거나 종료될 때 이벤트를 수집합니다. `addSubscriber()` 메서드를 사용하여 `MyCommandSubscriber` 객체를 MongoDB Driver Manager에 추가합니다. 그런 다음 `executeCommand()` 메서드를 사용하여 Command를 실행합니다. Command가 시작되거나 종료될 때 이벤트가 수집되고 로그에 기록됩니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 395 페이지

검색

게시물 검색