0

我目前有一个用 PHP 编写的小型 Google App Engine 项目。在传统的 Web 服务器上,我会简单地通过命令行调用这个特定的代码(例如 phpwhat.php)。如果可能的话,我想用 cron.yaml 将它设置为每隔一小时左右运行一次,而不调用 HTTP 请求。你会怎么做呢?

4

2 回答 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 回答