Classic ASP/VBScript 응용 프로그램을 C#/ASP.Net로 변환하는 중입니다. 응용 프로그램의 VBScript 부분은 Windows Scheduler에서 개별 작업을 설정하고 매월 특정 날짜에 수행되는 일련의 개별 스크립트입니다. 일련의 Crystal Reports를 PDF 및 Excel로 내보내는 것뿐만 아니라 데이터베이스 삽입 (월별 기록 데이터 저장, 요약 청구 데이터 저장)을 포함한 약 35 개의 작업이 있습니다. 동시 작업으로 데이터베이스 서버를 압도하기 싫으므로 각 작업은 약 1 분 간격으로 예약됩니다.C# 예약 된 작업 시리즈
내가 C#에서이 접근법을 사용하는 이유는 VBScript를 사용하여 수행 한 별도의 스크립트 접근 방식이 아닌 하나의 응용 프로그램에서이 방법을 사용할 수 있을지 궁금합니다. 지난 1 년 동안 ASP.Net MVC로 응용 프로그램의 웹 사이트 부분을 변환하는 데 C# 사용에 익숙해졌지만 C#의 시간 제한 이벤트에 대한 경험이 없습니다. 나는 각 작업에 대해 별도의 기능을 만들어 각각의 작업 사이에 잠자기를하여 다음 작업으로 넘어 가기 전에 데이터베이스 처리를위한 충분한 시간을 허용함으로써이 문제에 접근하려고 생각했습니다. 다음과 같은 내용 :
p.DoTask1();
Thread.Sleep(60000);
p.DoTask2();
Thread.Sleep(60000);
p.DoTask3();
Thread.Sleep(60000);
etc ...
이 내용은 자체적으로 Windows 스케줄러에서 설정되는 콘솔 응용 프로그램으로 정리됩니다.
건전한 접근입니까? 더 나은 접근법이 있습니까? 나는 타이머와 과제에 관해 읽었지만, 그들이 성취하고자하는 것에 적절한지 확신 할 수 없다.
@Amicable 내 애플리케이션이 데이터베이스 작업이 완료되었음을 알리거나 DB 서버에 작업을 전달했다는 것을 알 수 있습니까? 또한 수면을 수행하려면 실제로 작업을 사용해야합니까? 나는 수면이 가장 간단한 선택이라고 생각하고 있습니다. 저의 시나리오에서 좀 더 복잡한 선택을할만한 이유가 있습니까? –
@Amicable 대부분의 db 작업은 꽤 빨리 끝납니다. 따라서 각 작업 사이에 잠깐 시간이 주어 지므로 시간이 많이 걸리지 만 그 부분이 중요하지는 않지만 그럼에도 불구하고 db 작업이 반환 된 레코드로 끝나는 시점을 알고 싶습니다. 다음 과제로 넘어 가기 –
@Amicable 답안에 귀하의 의견을 요약해서 받아들입니까? 감사. –