1

Cloud Endpoint メソッドで GET リクエストを実行する cron ジョブを App Engine で設定しようとしています。

@API アノテーションを使用して Endpoint クラスに GET メソッドを作成しました

@ApiMethod(name = "cron.test", path="cron/test", httpMethod = HttpMethod.GET)
public void testCron() {
    ... // do something
}

cron.xml で設定しました:

<cronentries>
 <cron>
  <url>/_ah/api/MYAPI/v1/cron/test</url>
  <description>Send nightly reports.</description>
  <schedule>every 1 minutes</schedule>
  <timezone>America/Los_Angeles</timezone>
 </cron>
</cronentries>

App Engine 管理パネルの cron ジョブ ビューに、cron が実行を試みたが失敗したことが示されています。私は何を間違っていますか?エンドポイント メソッドへの URL が間違っていませんか?

4

1 に答える 1

1

以下の URLはアプリケーションによって所有されているので/_ah/apiはなく、Google の API インフラストラクチャによって所有されているため、アプリケーションはそれらのリクエストを受け取りません。

考慮すべき点がいくつかあります。

  • 動作をヘルパー メソッドに抽象化し、それを cron ハンドラーで呼び出します
  • /_ah/spi直接定義したハンドラーを使用する

PS 将来的には、ログからのエラーを含めたり、何も表示されなかったりしないようにすることも役立つでしょう (上記の理由により、ここではほぼ確実に当てはまります)。

于 2013-08-05T17:17:36.177 に答える