2012-01-10 2 views
2

작업을위한 최적의 일정을 만드는 도구를 알고있는 사람이 있습니까? 여러 데이터베이스를 실행하는 수많은 서버와 각 데이터베이스간에 데이터를 가져오고 변환하는 다양한 스크립트가 있습니다.지능형 작업 스케줄러

저는 현재 다양한 cronjob을 손으로 예약하고 있습니다. 그러나이 작업은 오류가 발생하기 쉽고 예외적으로 큰 데이터로드로 인해 비정상적으로 오래 실행되는 작업과 같이 예외를 설명하기 어렵습니다. 각 작업 간의 리소스 및 종속성을 인코딩하고 최적의 작업 실행 순서를 검색하는 플래너를 만들어 다른 작업과 간섭 할 가능성이 가장 적은 시간에 각 작업을 실행합니다.

나는 Drools Planner을 보았지만 엄청난 복잡성과 오버 헤드로 인해 적절하지 않습니다.

답변

1

NP 완성이므로 최적의 상태를 원할 경우 일정 복잡성과 CPU 오버 헤드를 피할 수 없습니다.

  • 이동 감소 등 먼저 맞추기로 빠른 건설 추론 : : 제가보기에는

    당신이 선택에있어 어려움을 감소에 대한 작업 (정렬 = 그들과 충돌 작업의 수, ...) 순서대로 나머지 지점을 지정하십시오. 이것은 거의 최적은 아니지만 빠르고 간단하며 낮은 오버 헤드가 있습니다.

  • real-time planning로 이동하십시오.

관심의 대상에서 플래너의 어떤 복잡성이 당신을 놀라게 했습니까?

0

작업 예약 문제는 NP 완료 집합에 있습니다. 따라서 최상의 답을 얻을 수있는 알고리즘은 하나도 없습니다.

그러나 거의 최적의 답변이 있습니다.

기술 : 1) 휴리스틱 기반 알고리즘 - 무게, MinMin, MaxMin 등 ... 2) 메타 휴리스틱 기반 알고리즘 - 유전자 알고리즘, 입자 떼 최적화 등 ...

하거나 발명 할 수 새로운 알고리즘.

원하는 경우 거의 최적의 일정을 생성하는 간단한 코드를 공유 할 수 있습니다.