在Django服务器中部署celery
创始人
2025-01-19 03:03:24
0

一、celery的安装

1.1什么是celery

celery分布式消息队列框架,主要描述了安装salary 库,并关联radis内存型数据库,  calary相当于异步操作,因为在一般的django项目中无法单独运行纯python文件,因此使用calary可以异步运行例如连接物联网平台或部署深度学习模型,

1.2在Windows上安装redis键值对存储数据库

  1. 下载 Redis

    • 访问 Redis 官方网站或者 GitHub Releases 页面:Redis 官方网站 或 Redis GitHub Releases。
    • 下载最新的稳定版本的 Redis 安装包,选择适合 Windows 的版本。
  2. 安装 Redis

    双击下载的 .msi 安装包,按照安装向导进行安装。
  3. 启动 Redis 服务

    • 完成安装后,Redis 服务可能不会自动启动。可以在开始菜单中找到 Redis 安装目录(通常是 C:\Program Files\Redis),打开命令行或者 PowerShell 窗口。
    • 使用命令 redis-server 启动 Redis 服务。Redis 将开始运行并监听默认端口 6379
  4. 验证安装

    • 打开另一个命令行或者 PowerShell 窗口,使用命令 redis-cli ping 来测试连接 Redis 服务器。如果返回 PONG,表示 Redis 已成功安装并运行。

二、在Django服务器中部署celery

步骤一:安装 Celery 和 Redis
  1. 安装 Celery

    • 在你的 Django 项目的虚拟环境中,使用 pip 安装 Celery:
       
      pip install celery

  2. 安装 Redis

    • 如果还没有安装 Redis,请按照上述步骤在你的开发环境中安装 Redis。Celery 需要一个消息代理来处理任务队列,Redis 是一个常用的选择。
步骤二:配置 Celery
  1. 在 Django 项目中创建 Celery 配置文件

    • 在你的 Django 项目根目录下,创建一个名为 celery.py 的文件,用来配置 Celery 和 Django 项目的集成。

      # celery.py  from __future__ import absolute_import, unicode_literals import os from celery import Celery  # 设置默认 Django settings 模块 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project.settings')  # 创建 Celery 应用实例 app = Celery('your_project')  # 使用 Django settings 文件配置 Celery app.config_from_object('django.conf:settings', namespace='CELERY')  # 从所有已注册的 Django app 中加载任务模块 app.autodiscover_tasks()

  2. 在 Django settings 文件中添加 Celery 配置

    • 打开你的 Django 项目的 settings.py 文件,添加以下配置:

      # settings.py  # Celery 配置 CELERY_BROKER_URL = 'redis://localhost:6379/0'  # Redis 服务器地址和数据库编号  CELERY_ACCEPT_CONTENT = ['json'] CELERY_TASK_SERIALIZER = 'json' CELERY_RESULT_SERIALIZER = 'json'  # (可选) 如果使用时区敏感任务,请启用以下设置 CELERY_TIMEZONE = 'Asia/Shanghai'  # 设置时区 

  3. 定义和注册 Celery 任务

    • 在你的 Django app 中创建一个 tasks.py 文件,定义 Celery 任务:

      # your_app/tasks.py  from celery import shared_task  @shared_task def add(x, y):     return x + y 

  4. 启动 Celery Worker

    • 打开一个新的命令行或者 PowerShell 窗口,进入你的 Django 项目根目录,激活虚拟环境,并运行以下命令启动 Celery worker:

      celery -A your_project worker -l info 

    • 这将启动一个 Celery worker 进程,它会监听并处理从 Redis 中接收到的任务。

  5. 在 Django 项目中使用 Celery

    • 在你的 Django 项目中,你可以通过导入并调用 Celery 任务来使用它们。例如,在视图中异步执行任务:

      from your_app.tasks import add  def your_view(request):     result = add.delay(4, 5)  # 异步执行任务     return HttpResponse(f"Task ID: {result.id}") 

    • delay() 方法会将任务推送到 Celery worker 进行处理。

  6. 监控 Celery 任务

    • 可以使用 Celery Flower 或者 Django 自带的 admin 界面来监控和管理 Celery 任务的执行情况。

相关内容

热门资讯

绝活儿辅助!广西老友玩老是输怎... 绝活儿辅助!广西老友玩老是输怎么办(辅助挂)都是真的有辅助app(讲解有挂)在进入广西老友玩老是输怎...
法门辅助!福建13水插件(辅助... 法门辅助!福建13水插件(辅助挂)一贯是有辅助技巧(有挂技术)1、许多玩家不知道福建13水插件辅助怎...
办法辅助!潮友会app下载官方... 办法辅助!潮友会app下载官方辅助器(辅助挂)真是真的是有辅助app(有挂教程)该软件可以轻松地帮助...
妙招辅助!邯郸胡乐挂辅助(辅助... 妙招辅助!邯郸胡乐挂辅助(辅助挂)好像存在有辅助插件(有挂方略)1、上手简单,内置详细流程视频教学,...
教程书辅助!乐酷辅助(辅助挂)... 教程书辅助!乐酷辅助(辅助挂)其实存在有辅助脚本(有挂细节)乐酷辅助能透视中分为三种模型:乐酷辅助模...
学习辅助!决战卡五星辅助(辅助... 学习辅助!决战卡五星辅助(辅助挂)本来真的是有辅助软件(有人有挂)学习辅助!决战卡五星辅助(辅助挂)...
绝活辅助!边锋嘉兴麻将辅助器(... 绝活辅助!边锋嘉兴麻将辅助器(辅助挂)真是真的有辅助神器(新版有挂)1、边锋嘉兴麻将辅助器公共底牌简...
举措辅助!枫叶辅助器(辅助挂)... 举措辅助!枫叶辅助器(辅助挂)本来存在有辅助技巧(竟然有挂)1、下载好枫叶辅助器正确养号方法之后点击...
讲义辅助!点我达辅助(辅助挂)... 讲义辅助!点我达辅助(辅助挂)一直存在有辅助技巧(有人有挂)1、点我达辅助辅助器安装包、点我达辅助辅...
模块辅助!威信茶馆有挂的吗(辅... 模块辅助!威信茶馆有挂的吗(辅助挂)一直真的是有辅助脚本(揭秘有挂)1、玩家可以在威信茶馆有挂的吗线...