google(七)cron module

本文介绍如何使用 Google App Engine 的 cron.yaml 文件来设置定时任务,包括常见的时间格式和示例,如每两分钟运行一次的任务。还提供了一个简单的 Django 示例用于测试定时任务是否正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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'),
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值