google-app-engine - 调度 cron 作业以触发云功能
问题描述
有没有办法使用 cron.yaml 来安排 cron 作业来触发 HTTP 云功能。我试图实现它,但传递整个 URL 会引发错误。
cron:
- description: "Test Call"
url: https://us-central1-***.cloudfunctions.net/helloGET
schedule: every 1 mins
当我尝试部署 cron 作业时,我在控制台中看到此错误
Unable to assign value 'https://us-central1-***.cloudfunctions.net/helloGET' to attribute 'url':
Value 'https://us-central1-***.cloudfunctions.net/helloGET' for url does not match expression '^(?:^/.*$)$'
in "/Users/xyz/Desktop/cron.yaml", line 3, column 8
我知道会抛出错误,因为我有完整的 URL 路径,但如果我只是通过以下内容而不是完整路径
cron:
- description: "Test Call"
url: /helloGET
schedule: every 1 mins
然后它能够部署 cron 作业,但是当作业运行时,它会引发 404 错误,因为只传递路径而不是完整的 URL,我相信它正在寻找应用程序引擎中的 URL,因为我没有任何代码在应用程序引擎中,我的服务调用在云功能中,它无法找到它。
还有一种方法可以将计划设置为每 1 秒而不是 1 分钟运行一次。
解决方案
中的 urlcron.yaml
需要是您的应用程序处理的 URl,而不是任意的 - 这就是为什么只有相对路径有效的原因。从语法(强调我的):
网址
必需的。url 字段指定应用程序中将由 Cron 服务调用的 URL。
您可以做的是让您的应用程序 cron 处理程序访问您需要触发 Cloud Function 的任意 URL。请参阅发出 HTTP(S) 请求
至于低于 1 分钟的间隔 - cron 本身不支持。但是有一些方法可以实现几乎相同的效果,例如使用 Google App Engine 刷新高频数据
推荐阅读
- android - 在 pdf 应用上实现 PlayAssetDelivery 的步骤
- react-native - 可能未处理的承诺拒绝 React Native
- mysql - 组合值的 MySQL 导入查询
- typescript - 是否有与流式 CLI 工具等效的 TypeScript?
- android - onNavigationItemSelected 不适用于导航抽屉
- c++ - C++ 试图实现一个矩阵
- r - R ggplot2 使用 RStudio 图表缩放设置保存图表
- javascript - 如何为偶数和奇数创建一个 React 类
- mongodb - 如何返回包含相同值但在 MongoDB 中的不同字段中的所有对象?
- c# - 使用双区域创建平均成绩