제 3 자 제품 공급 업체에서 작업의 Perl 스크립트 구현을 받았습니다. 내 일은 그것을 내 ASP.NET MVC5 웹 응용 프로그램으로 변환하는 것입니다.
perl 스크립트의 한 구성 요소는 다음과 같은 while 루프입니다.
### Only run this task every second, that's plenty
sleep 1;
기본적으로 그들은 1 초 간격으로 while 루프에서 작업을합니다 (의사 코드) :
While (condition)
{
-go get an m3u8 playlist file from the web
-parse it line by line
-look for a particular thing in it
-If you find it, break out of this loop and do stuff with it
}
일반적으로 항목을 찾는 데 20 ~ 30 초 (20 ~ 30 초)가 걸립니다.
이것이 async 및 await를 사용하는 비동기 프로그래밍의 종류입니까? 아니면 웹 앱에서 가져서는 안되는 것입니까?
이 프로세스는 웹 API에 대한 ajax 호출을 통해 노출됩니다. 가능한 경우 누군가 앱을 차단하지 않고 작동 방식에 대한 의사 코드를 제공 할 수 있습니까?
가능한 경우 누군가 앱을 차단하지 않고 작동 방식에 대한 의사 코드를 제공 할 수 있습니까?
AJAX 호출은 항상 비 차단입니다. 이를 위해 서버 측에서 특별히해야 할 일은 없습니다.
async
/ 사용하는 것이 좋습니다 await
. ASP.NET 스레드를 사용하지 않도록하기 위해서입니다.
public async Task<MyResult> GetThing()
{
While (condition)
{
-go get an m3u8 playlist file from the web
-parse it line by line
-look for a particular thing in it
-If you find it, break out of this loop and do stuff with it
await Task.Delay(TimeSpan.FromSeconds(1));
}
}
그러나 async
는 ASP.NET 서버 측에서 스레드를 해제하는 데만 사용됩니다. 클라이언트에는 전혀 영향을주지 않습니다. 클라이언트는 AJAX 호출을 수행하고 서버 구현에 관계없이 비동기 적으로 완료를 처리합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다