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