celery异步框架的使用

安装

pip install celery
pip install django-redis
# Windows中还需要安装以下模块,用于任务执行单元
pip install eventlet

redis 配置

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/0",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "CONNECTION_POOL_KWARGS": {"max_connections": 100}
        }
    }
}

目录结构

- proj/
  - celery_task
	- celery.py
   	- task1.py
  - manage.py
  - proj/
    - __init__.py
    - settings.py
    - urls.py

创建实例对象

# celery.py
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')
# 注册
app = Celery(__name__,broker=broker,backend=backend,include=('celery_task.task1'))
app.config_from_object('django.conf:settings', namespace='CELERY')

# 将任务写在各个应用下边可以自动发现任务! 
# app.autodiscover_tasks()
# - app1/
#    - tasks.py
#    - models.py
# - app2/
#    - tasks.py
#    - models.py

from datetime import timedelta
from celery.schedules import crontab

# 任务配置
app.conf.beat_schedule = {
    'update_task':{
        'task': 'celery_task.task1_viewnum_flush.about_author_update',
        'schedule': timedelta(seconds=60*60),
    },
    'up_task': {
        'task': 'celery_task.task1_viewnum_flush.view_num_update',
        'schedule': crontab(minute=1,hour=1)
        # 'args': (16, 16),
    },
}

配置文件

# 看自己需求
# settings.py
# 时区配置
CELERY_timezone = 'Asia/shanghai'
CELERY_enable_utc = False

任务

# task1.py

from .celery import app
from user import models,ser

# 每日访问量任务更新
@app.task
def view_num_update():
    number = models.Visit.objects.first()
    number.today_num = 0
    number.save()
    return True

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦琦不是MQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值