google(七)cron module
cron document
http://code.google.com/intl/en/appengine/docs/python/config/cron.html
Scheduled Tasks With Cron for Python
About cron.yaml
cron:
- description: daily summary job
url: /tasks/summary
schedule: every 24 hours
yaml syntax
http://www.yaml.org/
secure URLs for Cron
http://code.google.com/intl/en/appengine/docs/python/config/cron.html#Securing_URLs_for_Cron
Schedule Format
http://code.google.com/intl/en/appengine/docs/python/config/cron.html#The_Schedule_Format
examples:
every 5 minutes
every 12 hours
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
If you don't need to run a recurring job at a specific time, but instead only need to run it at regular intervals,
use the form: every N (hours|mins|minutes), where N is a number and hours or minutes specifies the unit of time.
The shortest time between runs of a task that can be specified is 1 minute.
TimeZone
http://en.wikipedia.org/wiki/List_of_zoneinfo_time_zones
Update Cron
You can use appcfg.py to upload cron jobs and view information about the defined cron jobs.
When you upload your application to App Engine using
appcfg.py update,
the Cron Service is updated with the contents of cron.yaml.
You can update just the cron configuration without uploading the rest of the application using
appcfg.py update_cron.
To delete all cron jobs, change the cron.yaml file to just contain:
cron:
My simple sample as follow
cron.yaml:
cron:
- description: minutes test job
url: /task/test/
schedule: every 2 minutes
views.py:
import logging
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
from django.contrib.auth.decorators import login_required
from django.views.generic.list_detail import object_list, object_detail
from django.views.generic.create_update import create_object
from google.appengine.api import memcache
logging.getLogger().setLevel(logging.DEBUG)
def test(request):
if not memcache.incr("task_test", initial_value=1):
logging.error("increase task_test in memcache failed!")
return render_to_response('task/main.html')
urls.py:
# -*- coding: utf-8 -*-
from django.conf.urls.defaults import *
from ragendja.urlsauto import urlpatterns
from ragendja.auth.urls import urlpatterns as auth_patterns
from django.contrib import admin
urlpatterns = patterns('',
(r'^test/$', 'task.views.test'),
)
cron document
http://code.google.com/intl/en/appengine/docs/python/config/cron.html
Scheduled Tasks With Cron for Python
About cron.yaml
cron:
- description: daily summary job
url: /tasks/summary
schedule: every 24 hours
yaml syntax
http://www.yaml.org/
secure URLs for Cron
http://code.google.com/intl/en/appengine/docs/python/config/cron.html#Securing_URLs_for_Cron
Schedule Format
http://code.google.com/intl/en/appengine/docs/python/config/cron.html#The_Schedule_Format
examples:
every 5 minutes
every 12 hours
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
If you don't need to run a recurring job at a specific time, but instead only need to run it at regular intervals,
use the form: every N (hours|mins|minutes), where N is a number and hours or minutes specifies the unit of time.
The shortest time between runs of a task that can be specified is 1 minute.
TimeZone
http://en.wikipedia.org/wiki/List_of_zoneinfo_time_zones
Update Cron
You can use appcfg.py to upload cron jobs and view information about the defined cron jobs.
When you upload your application to App Engine using
appcfg.py update,
the Cron Service is updated with the contents of cron.yaml.
You can update just the cron configuration without uploading the rest of the application using
appcfg.py update_cron.
To delete all cron jobs, change the cron.yaml file to just contain:
cron:
My simple sample as follow
cron.yaml:
cron:
- description: minutes test job
url: /task/test/
schedule: every 2 minutes
views.py:
import logging
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
from django.contrib.auth.decorators import login_required
from django.views.generic.list_detail import object_list, object_detail
from django.views.generic.create_update import create_object
from google.appengine.api import memcache
logging.getLogger().setLevel(logging.DEBUG)
def test(request):
if not memcache.incr("task_test", initial_value=1):
logging.error("increase task_test in memcache failed!")
return render_to_response('task/main.html')
urls.py:
# -*- coding: utf-8 -*-
from django.conf.urls.defaults import *
from ragendja.urlsauto import urlpatterns
from ragendja.auth.urls import urlpatterns as auth_patterns
from django.contrib import admin
urlpatterns = patterns('',
(r'^test/$', 'task.views.test'),
)