2012-01-02 3 views
2

이 가능 다음 사용 Quartz.NET 달성하는 것입니다 몇 가지 물건 실행합니다 : 내가 필드 "StreamAt"와 "VODContent"라는 이름의 MySQL의 테이블이사용 Quartz.NET은 MySQL의 테이블을 모니터링하고

- 날짜를 -입니다 이 테이블을 모니터링하고 "StreamAt"datetime 값의 5 분 전 또는 후에 일부 프로세스 (코드)가 실행됩니까? 자세한 내용은 avaialable

i'am

답변

0

내 느낌은 당신이 물었던 것을 통해 Quartz를 최대한으로 사용할 수 없다는 것입니다.

VODContent에 항목을 만들 때마다 StreamAt + 5 분의 일정으로 트리거를 만들면 원하는 것을 쉽게 달성 할 수 있습니다. 이 작업은 VODContent에 항목을 추가하는 과정에서 적용 코드의 레벨에서 수행해야합니다.

생성하는 트리거에는 이름과 그룹이 있어야합니다 (나중에 검색 할 수 있도록). 귀하의 경우, 이름이 VODContent 라인의 ID 일 수 있다고 생각합니다. 어떤 시점에서 당신이 당신의 트리거의 실행을 취소 할 경우 (의는 사용자가 자신의 주문 취소 때문에 VODContent에서 항목을 제거하는 것이 예를 들어 가정 해 봅시다), 그리고

var simpleTrigger = new SimpleTrigger("yourVODContentId", "VODContentStreamAt", startTime); 

: 여기 당신이 이러한 트리거를 작성하는 방법입니다 , 당신은 당신의 트리거를 제거하기 위해 스케줄러에 UnscheduleJob를 호출 할 수

_scheduler.UnscheduleJob("yourVODContentId", "VODContentStreamAt"); 

마지막으로 중요한 것은 당신의 Quartz.NET 인스턴스가 RAMJobStore을 AdoJobStore로 구성, 그리고해야한다는 것입니다. 그렇게하면 트리거가 데이터베이스에 저장되고 스케줄러가 중지/재시작 된 경우에도 예약 된 트리거가 유실되지 않습니다.

기본적으로 을 Quartz로 푸시해야합니다. 응용 프로그램에서 Quartz를 가져 오는 대신에.

+0

많은 감사합니다. sonyc – user852194

+0

안녕하세요. 질문을 게시하지 못하게했습니다. 어떻게해야할까요?이 빨간색, pleasssssssse를 어떻게 얻을 수 있습니까? – user852194

3

물론 사전에

감사 필요한 경우, 이것은 가능하다 : VODContent 폴링 한 Quartz.Net 작업 만들기 (other ways then polling for other DBMS 그러나이있다 mysqlconnector는 이벤트 알림 기능을 제공하지 않기 때문에 mysql에서 작동하는 간단한 솔루션이다. 이러한 작업을 생성하려면 Quartz.Net의 IJob interfacedescribed here으로 구현해야하며 프로그램은이 튜토리얼에 설명되어있는 매 n 초/분마다 실행되도록 스케줄해야합니다.

mysql connector을 통해 mysql 데이터베이스에 연결하고, 읽고 쓰고, 쓰는 방법을 보여주는 짧은 자습서는 be found here입니다.

특정 작업을 이미 시작했는지 확인하는 방법 VODContent에 따라 다릅니다. 예를 들어 특정 행을 수정하고 특정 작업을 예약 할 때 업데이트되는 새로운 bool 값 "Processed"를 도입 할 수 있습니다. 그런 다음 아직 처리되지 않은 값만 쿼리해야합니다.

Quartz.Net에서 statefull 작업과 stateless 작업에 대한 부분을 읽고 차이점을 이해하십시오.

위에서 작성한 작업은 테이블의 변경 사항을 확인한 다음 자습서에 설명 된대로 simple trigger 명령어를 사용하여 규칙에 따라 원하는 프로세스/코드를 실행하는 새 작업을 예약합니다.

+0

많은 사람들이 tobsen에 감사 드리며, 먼저 문서를 살펴보고 liitle 비트 코드를 구현해 보겠습니다. 일단 내가 돌아올거야 – user852194

+0

안녕하세요 Tobsen, 내가 몇 가지 샘플을 만들었지 만 괜찮아요하지만 누락 된 부분입니다, 나는 테이블의 요소가 proccede (C#에서) 준비가되었는지 확인 코드를 작성 wan't, 나는 Quarts가 어떻게 든 나를 위해 그것을 해주기를 바란다. 나는 당신에게 undestand를 바란다. – user852194

+0

나는 대답을 편집하고 mysql 튜토리얼과 커넥터에 대한 링크를 추가했다. 그것을 밖으로 시도하고 붙어 얻을 경우 작동하지 않는 코드를 게시하십시오. – tobsen

관련 문제