Google Cloud Scheduler 和 GAE cron 作业有什么区别?

What's the difference between Google Cloud Scheduler and GAE cron job?

阅读文档后

我觉得他们大部分是一样的。

我可以使用 GAE cron job + pub/sub + cloud function 来实现 cloud scheduler 具有的相同功能。

在我的理解中,它们之间似乎存在一些差异:

  1. Cloud Scheduler可以更方便的调整频率。要更新 GAE cron job 的频率,您必须更新配置,例如 cron.yamlschedule: every 1 hours 并重新部署。

  2. 无需实现cron作业架构(集成GAEGAE cron servicepub/subcloud function等...)自己动手,这意味着您不再需要编写代码将它们组合在一起。

我说的对吗?或者,还有其他区别吗?

您说得对,Google Cloud Scheduler 是 GAE cron 作业机制的一种演变,使其更加用户友好和灵活。您可以看到它们仍然相关,因为 Cloud Scheduler doc 指定:

To use Cloud Scheduler your project must contain an App Engine app that is located in one of the supported regions. If your project does not have an App Engine app, you must create one.

从历史上看,GAE cron 作业是该平台提供的唯一 cron 服务。您只能以 GAE 处理程序为目标来接收来自 cron 的请求。从那里您确实可以执行诸如在 [=20= 上发布]、调用 HTTP 云函数或启动数据流作业之类的操作,但您总是必须部署 GAE 服务来处理它,这不是最佳选择。

新的 Cloud Scheduler 可以更直接地与 Pub/Sub、Cloud Functions 以及任何公开可用的 HTTP 端点(可能是本地的)一起使用。当然还有 App Engine 处理程序。将来可能会为更多用例添加更多目标。

最后,正如您所提到的,用于管理它的 API 将其与 App Engine 及其 cron.yaml 文件分离,并且可以更轻松地动态创建和更新 cron 作业。