我想在 Google App Engine 上安排一个 cron 作业,每 10 分钟左右查看一次我的 5 个主页,以保持当前实例正常运行并提高用户的页面速度。我了解创建 cron 作业的所有基本语法,但我很好奇 python 会是什么样子。我是否只需要制作 5 个不同的 cron 作业并让每个作业获取一个 URL?
5 回答
要回答您的具体问题,这样的 cron.yaml 可能如下所示:
cron:
- description: five minute run
url: /refresh
schedule: every 5 minutes
其中 /refresh 是您在应用程序中编写的处理程序,然后会自动调用 N 分钟。
例如 myapplication.appspot.com/refresh
无需刷新特定页面或多个页面。只需调用处理程序即可使您的应用程序保持活动状态。
但正如其他人所指出的,这对于让应用程序永久保持温暖来说有点过分。
你不必诉诸于此。您可以付费让 App Engine 保持一定数量的前端持续运行。它们被称为“驻留”实例。
https://developers.google.com/appengine/docs/adminconsole/instances
我不了解 AppEngine,但在通用 Python 中,您只需要urllib.urlopen()。我可能只有一个脚本可以按顺序拉出所有 5 页 - 我真的想不出将它们分开的理由。
这似乎是现在解决单个低流量自动缩放实例问题的正确方法。基本上只需将其添加到您的 app.yaml 中:
automatic_scaling:
min_instances: 1
...然后将预热处理程序添加到您的应用程序(这样您就不会在每次 GAE 尝试预热您的应用程序时抛出 400 错误): https ://cloud.google.com/appengine/docs/standard/python3 /配置-热身请求
不要在 ping 上浪费时间,这具有完全相同的效果和成本。
Cron 作业只能获取一个 url。
我看到了 2 种方式: 1. 您可以为每个页面添加 cron。2.您可以添加一个cron作业并从cron添加任务到每个页面。