0

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

4

5 回答 5

5

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

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

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

例如 myapplication.appspot.com/refresh

无需刷新特定页面或多个页面。只需调用处理程序即可使您的应用程序保持活动状态。

但正如其他人所指出的,这对于让应用程序永久保持温暖来说有点过分。

于 2012-09-25T15:23:23.027 回答
2

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

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

于 2012-09-25T01:38:13.557 回答
1

我不了解 AppEngine,但在通用 Python 中,您只需要urllib.urlopen()。我可能只有一个脚本可以按顺序拉出所有 5 页 - 我真的想不出将它们分开的理由。

于 2012-09-25T01:01:58.583 回答
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 /配置-热身请求

不要在 ping 上浪费时间,这具有完全相同的效果和成本。

于 2020-06-06T19:52:54.937 回答
-3

Cron 作业只能获取一个 url。

我看到了 2 种方式: 1. 您可以为每个页面添加 cron。2.您可以添加一个cron作业并从cron添加任务到每个页面。

于 2012-09-25T01:13:03.193 回答