我目前有一个用 PHP 编写的小型 Google App Engine 项目。在传统的 Web 服务器上,我会简单地通过命令行调用这个特定的代码(例如 phpwhat.php)。如果可能的话,我想用 cron.yaml 将它设置为每隔一小时左右运行一次,而不调用 HTTP 请求。你会怎么做呢?
问问题
423 次
2 回答
1
您可以通过添加指向您的脚本的处理程序 url 来执行此操作,如下所示:
在您的 app.yaml 中,它看起来像这样:
handlers:
- url: /mycron
script: cron.php
login: admin
login 参数仅允许通过 Google 系统帐户或类似的方式执行端点,因此您的端点将无法公开访问。
以下链接中的更多信息
参考:https ://cloud.google.com/appengine/docs/standard/php/config/cron#securing_urls_for_cron
于 2019-05-08T10:39:14.697 回答
0
为了使用该cron.yaml
文件安排任务,也称为 cron 作业,您可以在文件中使用以下结构:
cron:
- description: "running my PHP code"
url: /your-app-url
target: your-service
schedule: every 60 minutes
您可以按照此语法编辑不同的 cron 字段以方便您。
将cron.yaml
文件放在与您的文件相同的目录app.yaml
(应用程序的根目录)中,并在部署之前通过转到http://localhost:8080/cron
. 如果可行,您可以通过运行以下命令使用 cron 作业部署应用程序:
gcloud app deploy cron.yaml
您可以通过以下链接找到有关 cron 作业的其他信息,例如如何重试失败的 cron 作业以及保护或删除它们。
于 2018-05-17T08:21:09.330 回答