2012-05-24 5 views
1

와주기적인 작업은 내가Celerybeat - 장고

나는 등 수상자를 anounce 활성 캠페인과 함께 응용 프로그램을 가지고 있고, 캠페인에 대한 알림을 보내 .. 일을 함께 맞는 방법 없습니다 확신합니다. 캠페인은 django로 생성되며, 캠페인 모델에는 매 X 일 또는 주 또는 시간마다 승자에게 알리는 필드가 있습니다. 따라서 이번 캠페인에서는 매주 금요일에 수상자를 발표해야합니다. 이것은 캠페인마다 다르며, 승자와 알림 설정이 다른 여러 캠페인이있을 수 있습니다.

셀러리 작업을 어디서 시작해야할지 모르시겠습니까? 모델을 저장해야할까요? 그러나 뭔가를 바꾸고 모델을 다시 저장하면 어떨까요? 다른 작업을 생성하지 않고 2 개 이상의 미리 알림 등을 보낼 수 있습니까?

+0

개인적으로 셀러리가 설치하기가 어렵고 신뢰할 수 없다는 것을 발견했습니다. 분산 아키텍처 파일에서 작업을 실행해야하는 경우가 아니라면 cron을 통해 주기적으로 작업을 예약하는 것이 좋습니다. – Cerin

답변

2

셀리 비트는 데몬이므로 영구적으로 (감독자와 같은) run in the background이어야합니다. 가장 짧은 미리 알림 지연이 한 시간이라는 사실을 감안할 때 시간별로 작업을 실행해야합니다.

이 작업은 모든 캠페인을 확인하고 미리 알림이 전송되어야하는 데이터베이스의 데이터에 따라 결정해야합니다. 일을 더 쉽게하려면 다음에 보낼 때 미리 알림을 보낼 때 계산하고 저장하는 것이 좋습니다. 다음 번에이 방법을 사용하면 보내는 미리 알림을 나열하면 모든 기한이 지난 목록을 표시하는 것처럼 쉽습니다.