나는 Quartz.net 스케줄러를 작동 시키려고 노력하고있다. 그러나 나는 미래에 예정된 작업을 위해 발사되지 않는 이유를 모른다. 나는 매분마다 작동하는 cron 트리거로 테스트를했는데 작동합니다 (모든 작업). 그래서 제 직업 코드에 문제가 없다는 것을 압니다.이러한 변수가 가비지 수집됩니까?
것들 내가 시도하십시오 ISchedulerFactory A는 글로벌 정적 변수 나는 그래서 위해 Application_Start의 마지막에 이메일 알림을 추가 한
- 실행 중일 때
- 스케줄러 코드를 변경할 때마다 앱을 다시 시작하면 알림 이메일이 전송되므로 다시 시작되었음을 알 수 있습니다.
나는이 프로그램을 공유 호스팅 환경에서 실행하고 있습니다 (어떤 영향을 미칠지 확실하지 않음). 내 추측 (그리고 이것은 단지 추측이다) 뭔가 쓰레기 수거되고 있지만, 나는 무엇과 왜 모르겠다.
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
// construct a scheduler factory
ISchedulerFactory schedFact = new StdSchedulerFactory();
// get a scheduler
IScheduler sched = schedFact.GetScheduler();
sched.Start();
// construct job info
JobDetail jobDetail = new JobDetail("myJob", null, typeof(Recorder));
jobDetail.JobDataMap["domain"] = "www.mydomain.com";
jobDetail.JobDataMap["userId"] = "2";
// Create trigger (everything is in UTC!!!)
CronTrigger cronTrigger = new CronTrigger("Schedule");
cronTrigger.StartTimeUtc = TriggerUtils.GetEvenSecondDate(DateTime.UtcNow);
cronTrigger.TimeZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); // run in pacific timezone
cronTrigger.CronExpressionString = "0 30 13 ? * MON-FRI *";
sched.ScheduleJob(jobDetail, cronTrigger);
}
이 질문과 답변을 읽고 싶을 수도 있습니다 : http://stackoverflow.com/questions/1356789/quartz-net-with-asp-net –