2012-01-12 9 views
0

私は 小数点なしの数字を入力するためのテキストフィールドを持つフォームを持っています。 に追加する必要があり、Alarmという名前のテーブルに挿入されます。 AppEngine Pythonでこのようなスケジュールされたタスクをどのように行うことができますか?

た時間が来る

は、私のWebアプリは、別のテーブルの上に挿入操作を行う必要があります。例えば

ユーザが20分に入り、現在の時刻が22:10であれば、結果の時間 は22:30でなければならないであろうとAlarmテーブルに挿入されます。したがって、22:30が到着すると、別のテーブルに新しい挿入物を作成する必要があります。

AppEngineでPythonを使用してこれを行うにはどうすればよいですか?

+0

私はこの記事http://code.google.com/intl/en/appengine/docs/python/config/cron.htmlを読みましたが、私はこの問題に適用する方法がわかりません。 – Lucas

答えて

2

あなたは目標時間をアラームテーブルに保存していると言いました。だから、あなたのcronは毎分(またはあなたのアラームの解像度に応じて5または10ごとに)実行し、現在の時刻と一致するアラームがあるかどうかをチェックし、そうであればアクションを実行する必要があります。

+0

私が間違っている場合おかげでダニエルは、私を修正してください:あなたは、私が は、「アラーム」以上の選択を実行し、その方法では、私は現在の時刻をチェックした場合に、そのメソッドのハンドラとURLに私のcronから起動する必要があります示唆"アラーム"テーブルに格納されている時間と一致します。 – Lucas

3

ご要望に応じて、Tasksetaまたはカウントダウンを使用することをお勧めします。

ユーザーがアクションをキャンセルできるようにする予定の場合は、「その他」のテーブルに追加する前のタスクのチェック無操作マーカーのいくつかのタイプを使用する必要があると思います。または、追加を実行する前に、タスクにAlarmテーブルをチェックさせます。

はまた、彼らはより丁寧な要求のようなもので、カウントダウン/ ETAは正確ではないことに注意してください。だからあなたの待ち行列がタスクでバックアップされているならば、あなたの追加はそれらが仮定された後に起こります。 (ただし、cron、特に1分のジョブは、定期的にタイミングの問題を抱えています)。

この方法の利点は、あなたが仕事を見逃さないようにする方法を見つけ出す必要がないということです。各タスクは、1つの追加(または追加の関連セット)を表します。また、書き込みが失敗した場合、タスクは再試行します。これはうれしいことです。

あなたの特定の問題に対しては、Cronがもっと良い解決策かもしれません。

+0

多くのありがとうロバート。 Daniel Rosemanのソリューションは適切に機能していると思いますので、私は の提案を実装しますが、何かが間違って始まる場合のために2番目の意見を考えてみましょう=) – Lucas

+0

@Lucas Cool、good luck。 :) –

関連する問題