지연 함수에서 context.WithTimeout을 재사용하는 것은 시간 초과 작업을 처리할 때 더 나은 제어와 유연성을 제공하는 효과적인 방법입니다. PHP 편집기 Youzi에서 제공하는 context.WithTimeout 함수를 사용하면 함수 실행 중에 시간 초과를 설정할 수 있습니다. 설정된 시간을 초과하면 함수가 자동으로 종료되고 오류 메시지가 반환됩니다. 이 방법을 사용하면 장기적인 기능 차단을 방지하고 프로그램의 안정성과 응답성을 향상시킬 수 있습니다. 동시에 지연 함수에서 context.WithTimeout을 재사용하면 다양한 함수의 시간 제한 제어도 달성할 수 있어 코드가 더욱 간결해지고 유지 관리가 쉬워집니다.
mongodb에 대한 go 빠른 시작 블로그 게시물의 다음 코드 조각(간결성을 위해 축약됨)은 데이터베이스에 연결할 때 context.withtimeout
,并将其重用于延迟的 disconnect
기능을 생성하는데, 이는 문제가 있다고 생각합니다.
내 생각-
context.withtimeout
생성 시 마감일을 Unix 시간으로 설정하세요.
따라서 시간 제한(즉, 파생된 Unix 시간)이 초과되면 연결 설정 프로세스를 취소하고 싶기 때문에 connect
에 전달하는 것이 합리적입니다.
이제 문서에 동일한 ctx
传递给延迟的 disconnect
(很可能在将来稍后调用)将导致 ctx
的时间成为过去。意思是,当函数开始执行时它就已经过期了。这不是预期的结果,并且破坏了引用 disconnect
논리를 추가하세요. -
내가 틀린 부분이나 누락된 부분이 있는지 알려주세요.
귀하의 이해가 정확합니다.
예제는 단지 데이터베이스에 연결하고 몇 가지 예제 작업(예: 데이터베이스 나열)을 수행한 다음 main()
가 끝나기 때문에 예제에서는 충분합니다. 따라서 동일한 컨텍스트로 지연된 연결 해제를 실행해도 문제가 발생하지 않습니다(예제는/ 10초 이내에 제대로 작동해야 합니다.)
"실제" 응용 프로그램에서는 확실히 그렇지 않습니다. 따라서 연결 및 연결 해제에 동일한 컨텍스트를 사용하지 않을 것입니다(해당 컨텍스트가 시간 초과되지 않는 한).
위 내용은 지연 함수에서 context.WithTimeout 재사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!