댓글 리스트
-
작성자 몬난아 작성시간17.11.06 1. 타이머는 닷넷 BCL에 3가지 종류가 있으며 각기 Thread생성 동작이 틀립니다.
2. 웹프로그램에서 타이머를 생성하는것자체가 위험한게 IIS등에 서버에 올라가면 node.js처럼 싱글 쓰레드로 동작하는것이 아니라 멀티쓰래드로 생성될것입니다. 보통 최소 CPU수 만큼 생성은 됩니다. 보통 4코어 쓴다면 최소 생성하신 변수가 static이라 할지라도 4개가 메모리에 있을겁니다.
3. wcf로 개발하시고 InstanceContextMode.Single 모드로 실행하시면 1개의 쓰레드에서 정상 동작할것같아보이나..이건 본인의 선택사항이 되는게 아닐까 싶네요 -
작성자 랜덤 작성시간17.12.09 좀 늦었지만 도움이 되신다면....이방법 문제없고요 수십개 프로젝트에서 잘도는 중입니다. 일단 타이머 대신 quartz.net을 사용하시고 정시 작동을 원하시면 cron으로 설정하시고. 싱글톤으로 하시고 따로 cs에 코딩하시면 쓰레드 상관없고요. global 이나 startup에서 시작하시면 되고요. IIS 가 중요한데 버젼마다 다르지만 AlwaysRunning을 꼭하셔야 되고요 idel timeout을 0으로 하시고 또 몇가지 세팅은 찿아보시고요 그러면 계속 돌아갑니다 재부팅 해도요. 단점은 웹코드를 업데이트하면 도중에 쓰레드가 죽고 다시지작하고요. 메모리를 많이 먹는 프로세스 안좋습니다.