django项目中celery对于并发操作的分配

Celery官方文档celery官方文档解决的问题celery解决了并发操作中耗时操作的等待问题,比如之前的手机验证码和邮箱验证码的发送,都是耗时操作,celery让这些操作可以并行操作减少等待时间安装celery在虚拟环境中,键入pip install celery就可以安装了配置celerycelery需要指定数据库,可以用rabbitMQ和redis,由于redis存取...
摘要由CSDN通过智能技术生成

Celery

官方文档

celery官方文档

解决的问题

celery解决了并发操作中耗时操作的等待问题,比如之前的手机验证码和邮箱验证码的发送,都是耗时操作,celery让这些操作可以并行操作减少等待时间

安装celery

在虚拟环境中,键入

pip install celery

就可以安装了

配置celery

celery需要指定数据库,可以用rabbitMQ和redis,由于redis存取比较快(其实是redis已经配置好了)我就用了redis
在这里插入图片描述
图片来源于:https://www.cnblogs.com/forward-wang/p/5970806.html
这张图比较详细的显示了项目中celery的运行模式

在项目中搭建celery并把需要并发的操作写入tasks中

在和同名文件夹同级目录下新建一个celery_tasks的python_package

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django ,启动 Celery 通常需要以下步骤: 1. 安装 Celery: ``` pip install celery ``` 2. 在 Django 项目创建一个 Celery 应用: ``` django-admin startapp celery_app ``` 3. 在 Django 项目的 settings.py 文件添加以下配置: ``` # Celery 配置 CELERY_BROKER_URL = 'amqp://guest:guest@localhost:5672//' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' CELERY_TIMEZONE = 'Asia/Shanghai' # Celery 应用程序 CELERY_APP_NAME = 'my_project.celery_app' CELERY_IMPORTS = ( 'my_project.celery_app.tasks', ) # Celery Worker 配置 CELERYD_CONCURRENCY = 1 CELERYD_MAX_TASKS_PER_CHILD = 1 CELERYD_TASK_TIME_LIMIT = 30 * 60 ``` 其,`CELERY_BROKER_URL` 和 `CELERY_RESULT_BACKEND` 配置用于指定消息队列和任务结果存储方式,这里使用了 RabbitMQ 和 Redis。`CELERY_TIMEZONE` 配置用于指定时区。`CELERY_APP_NAME` 配置用于指定 Celery 应用程序的路径。`CELERY_IMPORTS` 配置用于指定任务模块。`CELERYD_CONCURRENCY` 配置用于指定并发数。`CELERYD_MAX_TASKS_PER_CHILD` 配置用于限制每个 worker 最大执行任务数。`CELERYD_TASK_TIME_LIMIT` 配置用于限制任务的最长执行时间。 4. 在 Django 项目创建一个 tasks.py 文件,定义 Celery 任务: ```python from celery import shared_task @shared_task def add(x, y): return x + y ``` 5. 在 Django 项目创建一个 celery.py 文件,用于初始化 Celery 应用程序: ```python import os from celery import Celery os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my_project.settings') app = Celery('my_project') app.config_from_object('django.conf:settings', namespace='CELERY') app.autodiscover_tasks() ``` 6. 启动 Celery Worker: ``` celery -A my_project worker -l info ``` 其,`-A` 参数用于指定 Celery 应用程序,`worker` 命令用于启动 Celery Worker,`-l` 参数用于指定日志级别。 这样,就可以在 Django 项目启动 Celery 了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值