Casey Grimes
Casey Grimes

Reputation: 127

Running Google App Engine as PHP Command Line?

I currently have a small Google App Engine project written in PHP. On a traditional web server, I would simply invoke this particular code via command line (e.g., php whatever.php). I'd like to set this up with cron.yaml to just run every hour or so without invoking a HTTP request if possible. How would you go about doing this?

Upvotes: 0

Views: 475

Answers (2)

Dean
Dean

Reputation: 1236

You can do this by adding a handler url that points to your script as follows:

In your app.yaml it would look like this:

handlers:
- url: /mycron
  script: cron.php
  login: admin

The login parameter will only allow execution of the endpoint by Google system accounts or something like that so you enpoint won't be publicly accessible.

More information in the below link

ref: https://cloud.google.com/appengine/docs/standard/php/config/cron#securing_urls_for_cron

Upvotes: 1

Rodrigo C.
Rodrigo C.

Reputation: 1184

In order to schedule tasks using the cron.yaml file, otherwise known as cron jobs, you can use the following structure inside the file:

cron:
- description: "running my PHP code"
  url: /your-app-url
  target: your-service
  schedule: every 60 minutes

You can edit the different cron fields to your convenience by following this syntax.

Place the cron.yaml file on the same directory as your app.yaml file (your application's root directory) and, before deploying, test it by going to http://localhost:8080/cron. If it works, you can deploy the application with the cron job by running this command:

gcloud app deploy cron.yaml

You can find additional information about cron jobs, such as how to retry failing cron jobs and securing or deleting them by following this link.

Upvotes: 0

Related Questions