烹茶细论

django_cron 定时任务

最近在做saltstack的web管理界面,使用的是django框架,后台检测服务器状态需要用到定时任务,于是便引用了django_cron这个模块
使用方法如下:

1、pip或者easy_install安装django_cron

2、设置settings.py文件,在INSTALLED_APPS 里面添加 ‘django_cron’

1
2
3
4
INSTALLED_APPS = [
# ...
django_cron
]

3、编写定时任务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from django_cron import CronJobBase, Schedule
class MinionStatus(CronJobBase):
ALLOW_PARALLEL_RUNS = True
RUN_EVERY_MINS = 30
#RUN_AT_TIMES = ['1:01']
schedule = Schedule(run_every_mins=RUN_EVERY_MINS)
code = 'saltweb.minionstatus' # a unique code
def do(self):
try:
***
except:
logging.error("XXXXfail")

4、settings.py里添加定时任务

1
2
3
CRON_CLASSES = [
'utils.CollectLog.MinionStatus',
]