2016-08-19 2 views
0

뭔가가 만료되면 (특정 datetime에 도달 할 때) 작업이 실행되도록 예약하는 방법이 있는지 알고 싶습니다. 내가 필요한 것 중 하나를 구축하고있는 응용 프로그램에서 사용자가 특정 광고를 열 수있게 해주는 기능과 광고 시간 만 지정하는 광고 콘텐츠 옆에 광고가 만료됩니다. 광고가 생성되고 날짜 시간에 도달했을 때 실행되도록 예약 작업을 추가하는 방법이 있는지 알고 싶습니다. 그 다음에는 주기적으로 실행되지 않습니다. 이 새로운 스케줄 작업은 해당 광고에만 적용됩니다. 그래서 적극적인 광고만큼 많은 스케줄 작업이 있습니다. 스케줄링 작업이 실행될 때 더 이상 필요하지 않으므로 제거됩니다. 완벽한 솔루션이 아니며 고정 된 시간마다 주기적으로 실행되는 타이머를 사용하고 일부 광고 시간이 만료되었는지 확인하고 적절한 조치를 취하는 솔루션을 발견했습니다. 감사합니다.ASP.NET MVC의 개별 작업 스케줄링

답변

0

왜 Windows 스케줄러를 사용하지 않습니까? .net에서 일정 작업을 아주 쉽게 만들 수 있습니다.

당신의 솔루션 디자인은 매우 예외적입니다. 즉, 활동의 테이블/저장소를 살펴보고 실행 날짜/시간에 도달하면 해당 활동을 실행하는 단일 폴링 일정을 갖는 것이 일반적입니다. 각각의 개별 활동에 대한 스케줄을 작성하는 것은 잘 조정되지 않습니다.

+0

가 답장을 보내 주셔서 감사 IIS 스레드 풀의 외부를 실행하는 RecurringJob.AddOrUpdate(() => Console.Write("Easy!"), Cron.Daily); 에 대한 hangfire를 사용할 수 있습니다. 필자는 하나의 작업을 주기적으로 실행하고 필요한 데이터 또는 작업을 모든 인스턴스에 대해 한 번만 실행하도록 업데이트하는 것 사이에있었습니다. 나는 귀하의 조언을 듣고 정기적 인 접근 방식을 선택합니다. Windows 스케줄러를 사용하여이를 수행하는 방법에 대한 몇 가지 지침을 제공 할 수 있습니까? 활동 표와 함께 단일 폴링 일정을 갖기. 이 테이블을 데이터베이스의 일부로 만들 수 있습니까? 경험 부족으로 유감이지만 처음으로이 일정을 구현하고 있습니다. – Strelecxii

+0

". net 창 작업을 만들 수 있습니다"주위에 너무 구글보십시오 그리고 StackOverflow 바로 여기이 매우 유용한 코드 조각을 찾을 수 있습니다. http://stackoverflow.com/questions/7394806/creating-scheduled-tasks. 스케줄링 데이터베이스를 설계하는 데 도움을주기 위해 원래 질문의 범위를 넘어선 - 그러나 간단히 말해서 작업 스케줄을 간단한 텍스트 파일에 저장하고 Windows 스케줄러에 의해 실행되는 작업에서이를 읽지 않는 것이 좋습니다. 또는 거기에 많은 .net 스케줄링 프레임 워크가 있습니다 - 예를 들어 Quartz.net. – PhillipH