Google App Engine上的Cron Job可加快页面速度

时间:2012-09-25 00:29:15

标签: python google-app-engine cron crontab

我想在Google App Engine上安排一个cron作业,每隔10分钟左右查看我的5个主要页面,以保持当前实例的正常运行并提高用户的页面速度。我理解创建一个cron作业的所有基本语法,但我很好奇python会是什么样子。我是否只需要制作5个不同的cron作业并让每个人获取一个URL?

5 个答案:

答案 0 :(得分:4)

要回答您的具体问题,这样的cron.yaml可能如下所示:

cron:
- description: five minute run
  url: /refresh
  schedule: every 5 minutes

其中/ refresh是您在应用中编写的处理程序,然后自动调用N分钟。

E.G。 myapplication.appspot.com/refresh

无需刷新特定页面或多个页面。只是让处理程序调用将使您的应用程序保持活力。

但正如其他人所说,这对保持应用程序永久温暖有点重要。

答案 1 :(得分:2)

你不必诉诸于此。您可以付费让App Engine保持一定数量的前端不断运行。他们被称为“常驻”实例。

https://developers.google.com/appengine/docs/adminconsole/instances

答案 2 :(得分:1)

我不了解AppEngine,但在通用Python中,您只需要urllib.urlopen()。我可能只有一个脚本可以按顺序提取所有5个页面 - 我真的没想到让它们分开的原因。

答案 3 :(得分:1)

https://cloud.google.com/appengine/docs/standard/python/config/appref#automatic_scaling_min_instances

这似乎是现在解决单个低流量自动缩放实例问题的正确方法。基本上只需将其添加到您的app.yaml:

automatic_scaling:
  min_instances: 1

...然后将预热处理程序添加到您的应用程序中(只是为了避免每次GAE尝试预热应用程序时都不会引发400错误): https://cloud.google.com/appengine/docs/standard/python3/configuring-warmup-requests

不要浪费时间进行ping操作,其效果和成本完全相同。

答案 4 :(得分:-3)

Cron作业只能获取一个网址。

我看到两种方式: 1.您可以为每个页面添加cron。 2.您可以添加一个cron作业,并将task添加到来自cron的每个页面。