3

GAE (python) で単純な cron ジョブを実装する際に助けが必要です。

appengine のドキュメントから理解したところによると、アプリケーションのルート ディレクトリに次の内容のファイル cron.yaml を作成しました。

cron:
- description: blah blah
  url: /crontask
  schedule: every 1 minute

私の app.yaml ファイルには次の内容があります。

application: template-123
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: template-123.app

すべてのアプリケーション コード (cron およびその他の部分) を 1 つのファイル "template-123.py" にしました。コードでは、次の方法で cron を実装します。

class CronTask(Handler):

    def  post(self):
        i=25
        number = Birthday(day = i)
        number.put()

そして、('/crontask', CronTask) と記述して、このクラスを cron に使用するようにコードに指示します。

ただし、新しいエントリはデータストアにアップロードされません (そうあるべきだと思います)。また、データストアにアクセスする方法に問題がないことはわかっています。同じことを手動で実行しようとすると(アプリケーションの非cron部分のデータストアにエントリをアップロードする)、適切な結果。

それで、私が間違っていることや欠けていることについてのガイダンスが必要ですか? yaml ファイルをさらに変更したり、他のライブラリを追加したりする必要がありますか?

4

2 に答える 2

8

Cron は POST ではなく GET を使用します。に変更def post(self)しますdef get(self)(または他の適切なもの)。

于 2012-06-09T17:43:15.530 に答える
2

通常、python ファイルは py で終わります。ハンドラーは言うべきです

script: template-123.py

最初にローカルで cron ジョブをテストします。localhost:8000/_ah/admin にアクセスして、左側の [Cron Jobs] リンクをクリックできるはずです。すべての cron ジョブが一覧表示され、ページ上のリンクでそれらをテストできるはずです。最初に dev_appserver でデバッグします。

于 2012-06-08T02:16:24.093 に答える