2016-09-16 3 views
2

각 작업마다 다른 스케줄 시간으로 서버에서 실행되는 스케줄러 Windows 서비스가 있습니다.Quartz.net 스케줄러 메모리 누수

  1. 을 주 동안 서비스가 올바른 실행해야 할 모든 작업을 수행하지만, 특정 시간에 로그 파일마다의에서 OutOfMemoryException을 던져 :

    와서 두 가지 문제가 있습니다 작업이 실행됩니다.

  2. 이 스케줄러 서비스를 실행중인 서버에서 작업 관리자는 메모리를 증가시키고 청소하지 않습니다. 메모리를 정리하려면 스케줄러 서비스가 다시 시작됩니다.

코드로이 문제를 해결할 방법이 있는지 모르겠습니다.

감사의 말

+0

안녕하세요 @Alex,이 문제에 해결책이 있었습니까? 나는 석영을 사용하는 스케줄러 서비스와 비슷한 상황에 처해있다. –

+0

아니요, 이것에 대한 해결책을 찾지 못했습니다. Quartz 대신 Azure webjobs를 사용하기로 결정했습니다. 여기 [link] (https://www.troyhunt.com/orchestrating-massive-parallelisation/) –

답변

0

석영은 스스로 청소해야합니다. 사용자 정의 JobFactory를 구현 한 경우 실행 후 작업을 릴리스해야합니다.

0

내가 언급 한 문제에 대한 해결책을 찾았 기 때문에 여기에 적어 둡니다. 샘플 코드가있는 GitHub에서 사용할 수있는 프로젝트가 있지만 Quartz 작업을 사용하여 AutoFac을 설정하는 데 필요한 모든 사항을 필요에 따라 조정해야 할 수도 있습니다. 다음은 link입니다.

Autofac.Extras.Quartz 각 석영 작업에 대한 중첩 된 litefime 범위를 만듭니다

이 두 가지 주요 기능이 포함되어 있습니다. 중첩 된 범위는 작업 실행이 완료된 후에 처리됩니다.

이렇게하면 리소스를 결정적으로 처리 할 수있을뿐 아니라 작업을 하나의 인스턴스에서 실행할 수 있습니다.

물론 이것은 동일한 문제를 겪고있는 다른 사람들에게 도움이 될 것입니다.