5

Google App Engine を使い始めたばかりなので、すべての設定方法をまだ学んでいます。parsexml.py というスクリプトを作成し、10 分ごとに実行したいと考えています。このファイルはメイン ディレクトリにあり、main.py、app.yaml などと並んでいます。私が理解しているように、次のような新しいファイル cron.yaml を作成する必要があります。

cron:
- description: scrape xml
  url: /
  schedule: every 10 minutes

URL フィールドに何を入力する必要があるのか​​ わかりません。また、他に何か必要かどうかもわかりません。app.yaml ファイルを変更する必要はありますか? parsexml.py ファイルの名前はどこで指定すればよいですか?

4

3 に答える 3

9

ブライアン、

app.yamlとファイルの両方を更新する必要がありcron.yamlます。これらのそれぞれで、スクリプトを実行するパスを指定する必要があります。

app.yaml:

handlers:
- url: /path/to/cron
  script: parsexml.py

または、catch all ハンドラーがある場合は、それを変更する必要はありません。例えば:

handlers:
- url: /.*
  script: parsexml.py

cron.yaml:

cron:
- description: scrape xml
  url: /path/to/cron
  schedule: every 10 minutes

ドキュメントのように、ではparsexml.pyハンドラーを指定/path/to/cronして WSGI ハンドラーに登録する必要があります (または CGI を使用できます)。

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class ParseXMLHandler(webapp.RequestHandler):
    def get(self):
        # do something

application = webapp.WSGIApplication([('/path/to/cron', ParseXMLHandler)],
                                     debug=True)
if __name__ == '__main__':
    run_wsgi_app(application)

: Python 2.7 ランタイムを使用している場合は、リクエストを処理するためのグローバル WSGI 変数のscript: parsexml.application場所を指定する必要があります。application

于 2012-05-01T14:46:29.800 に答える
2

GAE では、すべてのアクションは URL を介して行われます。任意のスクリプトを cron として実行することはできません。プロジェクトの他のビューと同様に、そのスクリプトをハンドラーにして URL を指定する必要があります。

したがって、app.yaml で URL をスクリプトにマップし、スクリプトを編集してハンドラーにし、その URL を cron.yaml で使用します。

于 2012-05-01T14:47:18.710 に答える
0

このURLは、cronジョブのpyスクリプトを実行するために使用されます

基本的にあなたのapp.yamlで

あなたが持っている

app.yaml
handlers:
- url: /helloworld.py
  script: helloworld.py

cron.yamlで

cron.yaml
- description: scrape xml
  url: /helloworld.py
  schedule: every 10 minutes

cronでhelloworldを実行する場合は、URLを次のように設定する必要があります。url: /helloworld.py

于 2012-05-01T14:45:17.727 に答える