2011-09-28 3 views
1

asp.net 애플리케이션 내에서 quartz.net을 구성했으며 매일 오전 1시에 실행되도록 작업을 설정했습니다. 2 분 안에 작업을 실행하도록 job-config.xml 파일을 변경하면 app-pool을 다시 시작하지 않고 변경 사항이 자동으로 선택되어 작업이 시작됩니다. 그러나 아침에 다시 오전 1시에 직장을 바꾸기 위해 변경 사항을 되 돌리면 발사되는 것처럼 보이지 않습니다. 내게 명백한 이유는 app-pool이나 IIS가 재시작되어 내 asp.net 응용 프로그램이 종료되는 것이었기 때문입니다 (실제로 asp의 일부분 인 quartz.net을 종료 함). net 프로세스)하지만, iisreset 또는 app-pool recycle없이 quartz.net이 여전히 실행 중인지 테스트하려면 job-config.xml 파일을 다시 변경하여 2 분 이내에 다시 시작하고 작업이 실행되므로 ' 응용 프로그램 풀 재활용이나 IIS 재설정이 발생한 경우 인 것 같습니다. 이해할 수 없습니다.Quartz.NET 작업은 하루에 한 번 실행되지만 다음 날에는 실행되지 않습니다.

추가 Windows 서비스를 만들지 않고도 내 asp.net 응용 프로그램에서 작업을 계속 실행하고 싶습니다. 그래서 도움을 주시면 매우 감사하겠습니다. 아래는 quartz.net 설정 파일의 스 니펫입니다.

<job> 
<job-detail> 
    <name>xjob</name> 
    <group>MyJobs</group> 
    <description>blah blah</description> 
    <job-type>yyy.xxx,yyy</job-type> 
    <volatile>false</volatile> 
    <durable>true</durable> 
    <recover>false</recover>  
</job-detail> 
<trigger> 
    <cron> 
    <name>xJobTrigger</name> 
    <group>MyJobs</group> 
    <description>blah blah</description> 
    <job-name>xJob</job-name> 
    <job-group>MyJobs</job-group> 
    <cron-expression>0 0 1 * * ?</cron-expression> 
    </cron>  
</trigger> 

답변

1

나는 계속 몇 가지가 있다고 생각합니다 감사합니다. 언급했듯이 asp.net에서 스케줄러를 실행하면 프로세스가 재활용되어 스케쥴러가 실행될 때 작업을 실행하지 못할 수 있습니다. 주어진 시간에 작업을 실행하는 것이 중요하다면 Quartz.net을 서비스로 설정해야합니다.

누락 된 또 다른 점은 RAM 작업이 찢어져서 스케줄러가 다시 시작될 때 작업을 다시 예약한다는 의미 인 것 같습니다. 따라서 귀하의 경우에는 1 시까 지 다시 실행되지 않습니다. 스케줄러가 1에서 실행 중이 지 않으면 스케줄러가 다시 시작된 경우에도 작업이 실행되지 않습니다. ADO 작업 저장소를 사용하는 경우 적어도 트리거가 지속되고 스케줄러가 다시 시작되고 실화가 감지되면 작업이 실행됩니다.

+0

답변 해 주셔서 감사합니다. 대단히 감사합니다. 프로세스가 재활용되면 왜 2 분 이내에 특정 작업을 실행할 시간을 변경하면 작업을 사이트에 요청하거나 아무 것도 시작하지 않고도 실행되는 이유는 무엇입니까? 이것은 일관성이 있습니다. 나는 ADO 가게를 들여다 보겠다. 나는 그것이 RAM 상점의 경우라는 것을 깨닫지 못했다. 고맙습니다. – CraigM

+0

구체적인 내용이 없으면 작업 일정을 다시 잡을 때 프로세스가 실행 중이며 2 분 동안 지속될 것으로 예상됩니다. 24 시간 후에 작업을 수행하도록 일정을 예약하거나이 작업을 테스트하여 테스트 할 수 있습니다. IIS가 재생되는 간격이 작업 지연보다 짧으면 절대 실행되지 않습니다. – jvilalta

관련 문제