2012-01-12 3 views
0

숫자를 입력 할 수있는 텍스트 필드가있는 양식 자리는 현재 시간에 추가되어야하는 분을 나타냅니다. Alarm이라는 테이블에 삽입됩니다.AppEngine Python에서 이러한 종류의 예약 된 작업을 어떻게 수행 할 수 있습니까?

내 웹 앱에서 다른 테이블 위에 삽입 작업을 수행해야합니다.

사용자가 20분 진입하고 현재 시간 22:10 경우, 예를 들어, 결과는 시간 22:30해야하며 Alarm 테이블에 삽입한다. 따라서 22:30이 도착하면 다른 테이블 위에 새로운 삽입물을 만들어야합니다.

어떻게하면 AppEngine에서 파이썬을 사용하여이 작업을 수행 할 수 있습니까?

+0

이 기사는 http://code.google.com/intl/ko/appengine/docs/python/config/cron.html에서 읽었지만이 문제에 어떻게 적용해야할지 모르겠습니다. – Lucas

답변

2

당신은 목표 시간을 알람 테이블에 저장하고 있다고 말했을 것입니다. 따라서 cron은 매분마다 (또는 알람의 해상도에 따라 매 5 또는 10 번) 실행해야하며 현재 시간과 일치하는 알람이 있는지 확인한 다음 조치를 취하십시오.

+0

감사합니다. Daniel, 제발 제가 틀렸다면 제발 정정 해주세요 : 당신은 이 "Alarm"을 통해 선택을 수행하는 메소드 핸들러를 가진 URL로 내 cron에서 호출해야한다고 제안합니다. 그리고 그 메소드에서 현재 시간을 확인합니다. "알람"테이블에 저장된 시간과 일치합니다. – Lucas

3

요구 사항에 따라 Taskseta 또는 카운트 다운을 사용하는 것이 좋습니다.

사용자가 작업을 취소 할 수있게하려면 "기타"테이블에 추가하기 전에 작업에서 확인하는 몇 가지 유형의 사용하지 마커를 사용해야합니다. 또는 추가 작업을 수행하기 전에 작업에서 Alarm 테이블을 확인하십시오.

또한 카운트 다운/엣지는 정확하지 않으며 정중 요청과 비슷합니다. 따라서 대기열이 작업으로 백업되는 경우 추가 작업이 예정된대로 수행됩니다. (cron, 특히 1 분 작업이지만 정기적으로 타이밍 문제가 발생 함).

이 방법의 장점은 누락 된 작업을 피하는 방법을 알아야 할 필요가 없다는 것입니다. 각 작업은 하나의 추가 (또는 관련된 추가 집합)를 나타냅니다. 또한 쓰기가 실패하면 작업이 다시 시도됩니다.

크론은 특정 문제에 대해 더 나은 해결책이 될 수 있습니다.

+0

많은 감사 Robert. Daniel Roseman이 제공 한 솔루션이 제대로 작동하고 있다고 생각하므로 그의 제안을 구현 하겠지만 무언가가 잘못 될 경우를 대비하여 두 번째 의견을 고려해 보겠습니다.) – Lucas

+0

@Lucas 쿨, 행운을 비네. :) –

관련 문제