我在GAE上有一个动态后端设置,我希望每隔15分钟使用cron运行一次。问题是cron需要一个以“/”开头的url。后端网址使用以下格式:http://backendname.yourapp.appspot.com。
我在其他论坛中读到你可以使用fetchurl来调用你的后端,但我认为这不是理想的方式。因为那将要求您公开访问您的后端。
根据谷歌的文件: http://code.google.com/appengine/docs/java/backends/overview.html#Public_and_Private_Backends
“私有后端可以由应用程序管理员,应用程序实例以及App Engine API和服务(例如任务队列任务和Cron作业)访问,而无需任何特殊配置。”
有没有人通过在cron.xml中声明它来调用后端?
答案 0 :(得分:23)
使用目标标记在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>
答案 1 :(得分:2)
urlfetch可用于访问仅限内部的URL,例如私有后端 - 如果不可能,则无法在您的应用程序内进行通信!但是,更好的想法可能是使用任务队列,可以将其配置为针对后端运行任务。
答案 2 :(得分:0)
我没有尝试谷歌应用引擎的后端功能,因为它的定价模式。 但是,根据文件:
http://code.google.com/appengine/docs/python/backends/overview.html#Public_and_Private_Backends
默认情况下,后端是私有的,因为它们通常在应用程序中充当组件,而不是充当公共面。
我认为GAE会自动隐藏公共http访问的后端URL(即使不需要配置app.yaml)。您可以通过注销测试其行为并直接访问后端URL。