라이브러리
[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가 시작되거나 종료될 때 이벤트가 수집되고 로그에 기록됩니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.