3

バックエンドをGoogleAppEnginePythonで実行する際に問題が発生します。

私のapp.yamlに、このハンドラーを追加しました:

- url: /backend/.*
  script: backend.app
  login: admin

そしてbackend.appには、「/」用に定義されたハンドラーがあります。

私のbackends.yamlは次のようになります:

backends:
- name: dbops
  options: dynamic

フロントアプリで、バックエンドを呼び出すためのタスクキューを追加しました。

taskqueue.add(url='/backend/', target='dbops') 

ログを見ると、404エラーだけが表示され、バックエンドはバックエンドセクションの下に表示されませんが、インスタンスの下を見ると、新しいインスタンスが開始されます。バックエンドのドキュメントはあまり役に立たなかったので、誰もがガイダンスを得ました。

編集

以下のAlexの助けを借りて、バックエンドでコードを実行できるようになりました。バックエンドへのデプロイ手順を見逃しました。

appcfg.py backends ./ update dbops

これで、バックエンドインスタンスが管理インターフェイスで正常に実行されているのがわかりますが、タスクキューは404エラーを返し続けており、愚かな間違ったことをしていると確信しています。

frontend.pyの場合と同じようにbackend.pyのハンドラーを構成しますか?バックエンドインスタンスのfrontend.pyで定義されているハンドラーにはアクセスできますが、backend.pyで定義されているハンドラーにはアクセスできません。

2012年10月17日編集

少し掘り下げた後、apps.yamlでワイルドカードハンドラーがバックエンドハンドラーの前にリストされていることを発見しました。これで、バックエンドハンドラーは一種の機能を果たしています。このプロセスを管理ハンドラーとして定義していますが、それでもタイムアウトになります。

これが機能しない理由は何ですか?常に405エラーを返し、継続的に再試行します。

taskqueue.add(url ='/ backend /'、target ='dbops')

4

1 に答える 1

4

/backend/backend/.*パターンに一致することはありません。最後にスラッシュを追加する必要があります。

taskqueue.add(url='/backend/', target='dbops')

また、バックエンドでもおそらく同じことを行い、ハンドラを on で定義する必要があります/backend/

于 2012-10-15T17:57:28.347 に答える