Cron In Google App Engine
Cron in google app engine is similar to cron we use in Linux. With cron we can schedule task to run at specified time automatically.
To write cron in google app engine application we basically need to edit cron.yaml app.yaml and the main cron file with the code.
cron.yaml has the following format:
url is what will run.
schedule is when the job will run.
timezone if provided, the job will run at the schedule of that time zone otherwise according to UTC (optional)
target is the application version target you want the job to run. (optional)
You can use any of the following format in schedule option to run your job.
every N (hours|mins|minutes) ["from" (time) "to" (time)]
For eg:
Add your url just like any other page.
For eg:
So in conclusion:
in cron.yaml
To write cron in google app engine application we basically need to edit cron.yaml app.yaml and the main cron file with the code.
cron.yaml has the following format:
cron:description is just a description to your job. (optional)
- description: daily summary job
url: /tasks/summary
schedule: every 24 hours
timezone: Australia/NSW
target: version-2
url is what will run.
schedule is when the job will run.
timezone if provided, the job will run at the schedule of that time zone otherwise according to UTC (optional)
target is the application version target you want the job to run. (optional)
You can use any of the following format in schedule option to run your job.
every 12 hoursIf you want it to run on regular interval you can use:
every 5 minutes from 10:00 to 14:00
2nd,third mon,wed,thu of march 17:00
every monday 09:00
1st monday of sep,oct,nov 17:00
every day 00:00
every N (hours|mins|minutes) ["from" (time) "to" (time)]
For eg:
every 2 hours from 10:00 to 14:00After setting up cron.yaml you need to setup app.yaml.
every 2 hours synchronized
("every"|ordinal) (days) ["of" (monthspec)] (time)
Add your url just like any other page.
For eg:
handlers:You can also add login:admin as shown in the above example to restrict the task to only admin and prevent it from normal user running it. Furthermore in your code you can check for the header X-AppEngine-Cron: true to see if the url is run by cron engine.
- url: /task/daily
script: work.py
login: admin
So in conclusion:
in cron.yaml
cron:
- url: /tasks/daily
schedule: every 24 hours
in app.yaml
handlers:
- url: /task/daily
script: work.py
in work.py
#your python code
Comments
Post a Comment
Comments are moderated. No spam please.