asp.net의 global.as에서 System.Timers.timer를 사용하여 예약 타이머를 설정하십시오. 함수 'transferMoney()를 보겠습니다. 그러나이 타이머는 예상치 못한 몇 시간 후에 중지 될 수 있습니다. 그리고이 때문에 모든 작업이 보류 중입니다. MVC 1.0 asp.net에서 타이머를 설정하는 데 더 좋은 방법이 있는지 알고 싶습니다. 미리 감사드립니다.asp.net에서 더 좋은 타이머는 무엇입니까?
답변
응용 프로그램이 재활용 되었기 때문일 수 있습니다. Global.ashx는 장기 실행 작업을 수행하기에 적합한 장소가 아닙니다. AppDomain이 재활용되면 타이머가 사라지기 때문입니다. 나는 직업 Windows 서비스를 만드는 것이 좋습니다.
편집 : Visual Studio에서 [파일]> [추가]> [새 프로젝트 ...]> [Windows]> [Windows 서비스]를 사용하면 Windows 서비스 프로젝트를 만들고 프로젝트의 스텁 코드를 가져옵니다.
완벽한 예가 나오지 않으므로 google it을 제안합니다. ;) 당신이 볼 수있는 수많은 샘플이 있습니다.
This article (CodeProject)은 Windows 서비스에 대한 좋은 소개 인 것으로 보입니다.
당신은이 System.Threading.Timer
http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx
당신은 결국 "종료"합니다 ASP.NET 응용 프로그램에서 사용할 수 있습니다 모든 타이머를 시도하지만,이 매우 예상되는 동작 process recycling로 인해 수 있습니다.
그래서 어떻게 피할 수 있습니까 ??? 나는 그것을 봤는데, 나는 System.timers.timer가 서버에 사용되는 것을 알고 있지만, 특별한 기능을 가지고 있습니까? – MemoryLeak
IIS는 응용 프로그램 풀 설정에 따라 IIS가 작업자 프로세스를 정기적으로 일정을 조정하므로 타이머가 작동하지 않습니다. 따라서 타이머가 재생되면 타이머가 파괴되어 다시 열어야합니다.
타이머 개체가 아직 사용 가능한지 여부를 확인하고 사용할 수없는 경우 만들 수 있습니다. 다른 타이머 개체를 사용하면 효과가 없습니다. 그러나 이것은 여전히 문제가 있습니다. 특정 기간 동안 웹 요청을하지 않으면 여전히 파괴됩니다. 가장 좋은 방법은 웹 사이트를 안전하게 유지할 수있는 다른 장소에서 핑 모니터를 설치하는 것입니다.
ASP.NET에서 안정적으로 타이머를 실행할 수 없습니다. 들어오는 요청이 없으면 IIS가 응용 프로그램을 종료 할 수 있으며 다음 요청이 도착할 때까지 IIS가 시작되지 않습니다.
왜 타이머가 필요하다고 생각하십니까? 대부분의 웹 응용 프로그램에서는 외부 소스에 의존하지 않는 한 정기적 인 업데이트를 수행 할 필요가 없습니다.
응용 프로그램 내에서 데이터를 이동하는 경우 실제 트랜잭션을 정확한 간격으로 수행 할 필요가 없지만 발생한 경우 결과 만 계산하면됩니다. 요청이 들어올 때마다 마지막 요청 이후 발생한 트랜잭션 수를 계산하여 현재 상태를 따라 잡습니다.
트랜잭션이 외부 소스를 사용하여 실제로 특정 시간에 실행해야하는 경우 ASP.NET만으로는 트랜잭션을 수행 할 수 없습니다. IIS 외부에서 실행되는 응용 프로그램이 필요합니다 (예 : Windows 스케줄러에서 주기적으로 시작).
- 1. ASP.NET에서 저장 프로 시저를 사용하는 더 좋은 방법은 무엇입니까?
- 2. 간단한 자바 타이머는 라이브러리
- 3. .net 타이머는 얼마나 안정적입니까?
- 4. EJB 타이머는 지속적/안정적입니까?
- 5. Asp.net에서 JQuery를 사용하는 가장 좋은 방법은 무엇입니까
- 6. ASP.NET에서 URL을 생성하는 가장 좋은 방법은 무엇입니까?
- 7. ASP.NET에서 이벤트를 구독하는 가장 좋은 방법은 무엇입니까?
- 8. ASP.Net에서 가변 크기의 양식 테이블 만들기 (더 좋은 방법이 있어야합니다 ...)
- 9. ASP.NET에서 동적으로 PNG를 생성하는 좋은 방법은 무엇입니까?
- 10. ASP.NET에서 주석을 표시하는 가장 좋은 방법은 무엇입니까?
- 11. 타이머는 홈 화면에서 실행 중입니다. iPhone - Objective C
- 12. 더 좋은 방법이 있나요?
- 13. LINQ를 사용하는 더 좋은 방법은 무엇입니까?
- 14. 이미지의 크기를 조정하는 더 좋은 방법은 무엇입니까?
- 15. 파이썬에서 이것을 처리하는 더 좋은 방법은 무엇입니까?
- 16. 성능 향상을 위해 더 좋은 방법은 무엇입니까?
- 17. ruby에서 memcached에 액세스하기위한 더 좋은 선택은 무엇입니까?
- 18. ImageView를 움직이는 것이 더 좋은 방법은 무엇입니까?
- 19. 안드로이드에서 데이터베이스와 통신하는 더 좋은 방법은 무엇입니까?
- 20. CSS 스타일을 설정하는 더 좋은 방법은 무엇입니까?
- 21. jquery mouseover의 더 좋은 방법은 무엇입니까?
- 22. 날짜별로 정렬하는 더 좋은 방법은 무엇입니까?
- 23. XML 문서를 비교하는 더 좋은 방법은 무엇입니까?
- 24. 이 기능을 구성하는 더 좋은 방법은 무엇입니까?
- 25. ASP.NET에서 sustainom XML 웹 서비스에 연결하는 가장 좋은 방법은 무엇입니까?
- 26. 더 좋은 방법은 자바 스레드?
- 27. 더 좋은 방법이 있나요?
- 28. ASP.Net에서 보고서를 PDF로 인쇄하는 가장 좋은 방법은 무엇입니까?
- 29. asp.net에서 데이터베이스의 세션 변수를 추가하는 가장 좋은 방법은 무엇입니까?
- 30. VB.net, ASP.net에서 Java로 전환하는 것이 좋은 생각입니까?
어떻게 처리하나요?샘플 코드를 좀 주시겠습니까? – MemoryLeak
그가 다른 프로그램 (예 : Windows 서비스)을 실행한다고 말하면서 문제는 기본적으로 응용 프로그램 (웹 사이트)이 서버 재활용 정책에 따라 너무 자주 종료된다는 문제입니다. 장기 실행 작업을 원하면 Windows 서비스. – meandmycode