2011-01-14 6 views
1

질문이 있습니다.스케줄 작업 질문

미래에 특정 시점에 발생할 데이터가 있다고 가정 해 봅시다. 당신은 1 시간 안에 그의 임무가 끝날 것이라는 말을 듣고 그의 임무는 1.5 시간 안에 끝날 것이라고합니다. 정보는 서버에서 수집됩니다. 어떤 프로그래밍 언어 또는 어떻게 해결할 것인가? 그래서 과제는 1 시간에, 과제 B는 1.5 시간에 실행됩니다. 나는 자바 스케쥴러에 대해 읽었지만, 이것이 올바른지 확실하지 않다.

어떤 아이디어가 있습니까?

건배

답변

1

크론은 대부분의 유닉스 웹 서버에 설치되어 - 나중에 실행하는 작업을 할당하는 데 사용할 수 있습니다.

+0

프로그래밍 언어로 정의 할 수 있습니까? – gabac

+0

서버에서 실행되는 모든 것. –

+0

가능합니다. 'man crontab'과 어떻게 새로운 작업을 제출하는지보십시오. 또한 linux/bsd at에서; 일회성 작업을 'at'에 제출하는 것이 더 쉽습니다. – 9000

1

프로그래밍 방식의 액세스를 찾으려면 Quartz - 자바 스케줄러를 살펴보십시오. 그들은 또한 좋은 자습서 resource 있습니다.

1

장기 실행 프로세스 인 경우 java에서 ScheduledExecutorService를 사용하여이를 수행 할 수 있습니다. 분명히 프로세스가 종료 되더라도 작업은 손실됩니다.

cron 또는 quartz도 더 영구적 인 스케줄러로 작동합니다. 각자 자신의 주름이 있습니다.

1

어떤 이유에서든 그런 시스템을 직접 구현하기로 결정했다면 다음과 같은 아이디어가 있습니다.

  • 기한 내에 주문한 작업 목록을 준비하십시오.
  • 대부분의 시간을자는 데몬 프로세스를 만듭니다. 매분 또는 심지어는 sleep()을 사용하여 불규칙하게 데몬이 깨어나면 대기열에서 작업이 수행됩니다. 작업의 만기 시간이 오면,이 작업을 별도의 프로세스 (또는 스레드)에서 실행하고 대기열에서 제거합니다. 모든 정당한 일을 시작한 후에, 그것은 잠에 다시 간다.
  • 새 작업을 큐에 추가하는 인터페이스를 만듭니다.
관련 문제