django 定时任务的创建

方法1:django-crontab

定时任务crontab任务的创建

pip install django-crontab  # 安装依赖

'django_crontab'  # 注册中间件

定时时间的基本格式:

*    *    *    *    *

分 时  日  月  周   命令

M: minute   每分钟  用  * 或者 */1

H:  hour    

D:  day

m:  month

d: 一星期内的天

主要分为三部分应用定时: 任务时间、任务方法、任务日志

配置定时任务

# django-crontab
CRONJOBS = [
# 每1分钟执行一次crontab_test函数
('*/1 * * * * ','app.view.crontab_test','>>'+os.path.join(BASE_DIR,'test.log'))
]

若出现非英文问题:

CRONTAB_COMMAND_PREFIX = 'LANG_ALL=zh_cn.UTF-8' # 解决中文问题

 常用命令

创建任务命令     python manage.py crontab add
展示任务命令     python manage.py crontab show
取消任务命令     python manage.py crontab remove

 方法2:celery

# tasks
from celery_task import send_email
from datetime import datetime
ctime = datetime.now()
# 默认用utc时间
utc_ctime = datetime.utcfromtimestamp(ctime.timestamp())
from datetime import timedelta
time_delay = timedelta(seconds=10)  # 当时时间10s后执行任务

 
# setting
cel.conf.beat_schedule = {
    # 名字随意命名
    'xxx': {
        # 执行定时函数
        'task': 'celery_tasks.task01.send_email',
        # 定时每月10-15号,周一至周五,早上8点30分发送邮件
        "schedule": crontab(minute='30', hour='8', day_of_week='1-5', day_of_month='10-15')
        'schedule': timedelta(seconds=6), # 每6s执行一次
        # 传递参数
        'args': ('xxx',)
    },
} 

celery 启动命令

# 周期性执行任务单元,要注意先启动beat进程而后执行worker单元
celery -A celery_tasks beat
celery -A celery_tasks worker -l info -P eventlet
 
注意: 当打开beat后而若没有打开worker执行单元会导致beat进程不断向数据库中加入数据

相关推荐

  1. django 定时任务创建

    2024-03-18 05:38:05       35 阅读
  2. 使用Oracle数据库创建定时任务方法

    2024-03-18 05:38:05       43 阅读
  3. @Scheduled注解创建定时任务 3 种模式

    2024-03-18 05:38:05       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-18 05:38:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-18 05:38:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-18 05:38:05       82 阅读
  4. Python语言-面向对象

    2024-03-18 05:38:05       91 阅读

热门阅读

  1. HJ31 单词倒排

    2024-03-18 05:38:05       38 阅读
  2. cache的58问,您能回答上几个

    2024-03-18 05:38:05       41 阅读
  3. Python sorted()函数

    2024-03-18 05:38:05       34 阅读
  4. 前端项目构建过程中的思考落地以及拓展

    2024-03-18 05:38:05       35 阅读
  5. MySQL基础知识

    2024-03-18 05:38:05       33 阅读
  6. 基于Python的股票市场分析:趋势预测与策略制定

    2024-03-18 05:38:05       45 阅读
  7. 解决 sh 和 bash 在执行脚本时的差异:双括号问题

    2024-03-18 05:38:05       34 阅读
  8. AJAX-XMLHttpRequest

    2024-03-18 05:38:05       41 阅读
  9. 【前端】CSS常见的选择器

    2024-03-18 05:38:05       36 阅读
  10. K8s 集群高可用master节点ETCD挂掉如何恢复?

    2024-03-18 05:38:05       36 阅读
  11. css常用选择器(一)

    2024-03-18 05:38:05       38 阅读