django-crontab设置定时任务

django-crontab

1、安装django-crontab

$ pip install django-crontab

2、在django项目settings.py中注册

INSTALLED_APPS = [
    ......
    'django_crontab',
    'app_name'
]

【注意】django_crontab一定要注册在应用名之前,在这里是下划线,不是短横。

3、在settings.py中配置定时任务

# 定时任务设置
CRONJOBS = [
    # 检测周循环任务
    ('0 2 */7 * *', 'utils.cron.week_schedule.week_schedule', '>>' + os.path.join(BASE_DIR, 'logs/crontab.log')),
    # 检测月循环任务
    ('0 2 1 * *', 'utils.cron.month_schedule.month_schedule', '>>' + os.path.join(BASE_DIR, 'logs/crontab.log')),
    # 检测年循环任务
    ('0 2 1 1 *', 'utils.cron.year_schedule.year_schedule', '>>' + os.path.join(BASE_DIR, 'logs/crontab.log')),
]

4、如何在django中添加任务

#django中添加定时任务
python manage.py crontab add
#django中移出定时任务
python manage.py crontab remove
#django中展示已添加的定时任务
python manage.py crontab show
#django中单次手动执行定时任务
python manage.py crontab run <tash_hash_id>

5、扩展

前5个(*)星号

M(分钟0-59)
H(小时0-23)
D(天1-31)
m(月1-12)
d(一星期0-6,0为星期天)

特殊符号

* 代表所有的取值范围的数字
/ 代表每的意思,*/5就是每5个单位
- 代表从某个数字到某个数字
, 分开几个离散的数字

eg:
0 14 * * 1-5 周一到周五每天下午两点触发任务
0 10 * * 0,6 周六、周天早上十点触发任务
*/5 9-10 * * 1-5 周一到周五九点到十点每五分钟触发任务

6、解决crontab中文问题

CRONTAB_COMMAND_PREFIX = 'LANG=zh_cn.UTF-8'
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值