2012-09-05 3 views
1

우리는 이벤트 일정을 잡는 데 사용할 수있는 서비스가 필요합니다. 예를 들어, 우리는 3시 (1 회) 또는 2 시간 (여러 번)마다 실행해야하는 작업을 가질 수 있습니다. 각 작업은 게시 할 AMQP 대기열로 구성하는 것이 바람직합니다.예약 작업을위한 서비스

OS 타이머 이벤트를 만들어 쉽게 구현할 수 있습니다. 내 관심사는이 서비스가 중단 된 경우 복구하는 방법입니다. CRON이 스케줄링을 허용하는 것이라면 CRON을 사용할 수 있습니다.

나는 바퀴의 재발 명을 피하기위한 방법을 찾고있었습니다. 이미이 작업을 수행 한 프로젝트가 없다면 우리는 하나만 만들 것입니다. 이것은 꽤 흔한 일입니다. 아무도 지금까지 아무 것도하지 않는다면 놀랄 것입니다.

답변

2

Celery이이 문제를 해결합니다.

celery.schedules을 사용하면 정기적 인 작업을 정의 할 수 있습니다. 그리고 is_due을 재정 의하여 schedule once a month과 같은 작업을 수행 할 수 있습니다. schedule tasks to execute at a specific time을 사용하면 periodic_task 또는 celery-beat (지금은 표준 접근 방식이라고 생각합니다)을 사용할 수 있습니다. 또 다른 방법은 에 eta 인수를 사용하는 것입니다.

+0

셀러리는 정말 무거운 무게의 솔루션처럼 보입니다. 우리가 결코 사용하지 않을 추가 기능이 많이 있습니다. 셀러리에 대해 좀 더 살펴볼 것입니다. 아마도 다른 방법으로 사용할 수 있습니다. –

관련 문제