php 편집기 Banana는 "1초 동안 멈춘 후에도 계속 데이터 읽기"라는 흥미로운 트릭을 여러분과 공유하기 위해 왔습니다. 프로그래밍에서는 후속 작업을 계속 수행하기 전에 일정 시간 동안 기다려야 하는 경우가 있는데, 이 기술은 이러한 목표를 달성하는 데 도움이 될 수 있습니다. 네트워크 요청의 지연된 작업에 사용되거나, 시간이 많이 걸리는 특정 작업이 프로그램의 실행 효율성에 영향을 미치는 것을 방지하기 위해 이 기술이 중요한 역할을 할 수 있습니다. 아래에서는 이 기능을 php에서 어떻게 구현하는지 자세히 소개하겠습니다.
curl을 사용하여 엔드포인트에서 데이터를 가져와 내 프로그램으로 전송하고 있습니다. 프로그램의 주요 기능은 다음과 같은 데이터를 읽습니다
으아아아지금까지는 모든 것이 괜찮습니다. 그러나 최종 목표는 프로그램이 N 시간 간격으로 도착하는 N JSON 블롭을 읽을 수 있도록 일정 기간 동안 이와 같이 끝점을 반복적으로 컬링하는 것입니다.
으아아아엔드포인트까지 컬링할 때마다 동일한 구조화된 데이터에 도달합니다. 그래서 데이터 읽는 코드를 함수로 옮겨야 합니다readStdIn
中,我将重复调用该函数,直到curl 停止发送数据,并且每次我的程序接收到 json 数据时,我都会将其解组到结构中并将其添加到切片中。为了重复调用 readStdIn,我使用了 for 循环,为了读取 readStdIn 中的数据,我也使用了 for 循环。 readStdIn
함수가 절대 완료되지 않습니다. 왜 안 돼?
주요 기능
으아아아readStdIn 함수
reader := bufio.NewReader(os.Stdin) var buf bytes.Buffer line, err := reader.ReadString(`\n`) for { if err != nil{ buf.WriteString(line) break } buf.WriteString(line) } var data Memstats err = json.Unmarshal(buf.Bytes(), &data)
기능을 사용자 정의하거나 bash 스크립트를 변경하여 스캐너를 사용할 수도 있습니다. 그러나 나는 둘 다 아래 코드보다 더 복잡하다고 생각합니다.
으아아아 으아아아새 프로그램 인스턴스(예: 예) 생성과 일반적인 파이프 사용 모두에 작동합니다.
출력:
으아아아while 睡眠 1;做 echo "$(date)" | ./我的程序;完成
출력:
위 내용은 1초 동안 정지한 후 계속해서 데이터 읽기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!