将Google App Engine作为PHP命令行运行?

时间:2018-05-10 18:39:06

标签: google-app-engine google-app-engine-php

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

2 个答案:

答案 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作业以及保护或删除它们。