首页 文章

在Google App Engine(Java)中使用Cron执行后端

提问于
浏览
14

我在GAE上有一个动态后端设置,我希望每隔15分钟使用cron运行一次 . 问题是cron需要一个以"/"开头的url . 后端URL使用以下格式:http://backendname.yourapp.appspot.com .

我认为这是理想的方式 . 因为这将要求您公开访问您的后端 .

根据谷歌的文档:http://code.google.com/appengine/docs/java/backends/overview.html#Public_and_Private_Backends

“私有后端可以由应用程序管理员,应用程序实例以及App Engine API和服务(例如任务队列任务和Cron作业)访问,而无需任何特殊配置 . ”

是否有人通过在cron.xml中声明它来调用后端?

3 回答

  • 2

    使用目标标记在cron.xml中指定后端 .

    <?xml version="1.0" encoding="UTF-8"?>
    <cronentries>
      <cron>
        <url>/long-task</url>
        <description></description>
        <schedule>every 30 minutes</schedule>
        <target>name-of-the-backend</target>
      </cron>
    </cronentries>
    
  • 0

    urlfetch可用于访问仅限内部的URL,例如私有后端 - 如果不可能,则无法在您的应用程序内进行通信!但是,更好的想法可能是使用任务队列,可以将其配置为针对后端运行任务 .

  • 23

    我没有尝试谷歌应用引擎的后端功能,因为它的定价模式 . 但是,根据文件:

    http://code.google.com/appengine/docs/python/backends/overview.html#Public_and_Private_Backends

    默认情况下,后端是私有的,因为它们通常在应用程序中充当组件,而不是充当其公共面 .

    我认为GAE会自动隐藏公共http访问的后端URL(即使不需要配置app.yaml) . 您可以通过注销测试其行为并直接访问后端URL .

相关问题