zoukankan      html  css  js  c++  java
  • Windows 环境下基于 Redis 的 Celery 任务调度模块的实现

    搭建环境:

    Windows-x64 10
    Celery 3.1.23
    Celery-with-redis 3.0
    Redis-win32-win64 2.4.5
     
    实现步骤:
    1.安装 Redis
    由于 Redis 并没有官方支持 Windows,因此需要在 https://github.com/MSOpenTech/redis 中下载 Redis 包。
    随后,只需将对应的压缩包解压缩至相应的目录即可。
    2.安装 Celery 相关库
    # pip intall celery
    # pip install celery-with-redis
    3.编写基于 Celery 的异步程序
    假设编写异步邮件发送程序,其中异步发送邮件的函数名为 Send_Mail,定义于 mail.py 文件中。
    注意:初始化 Celery 对象时要指定任务名称、Celery 后端(backend)执行的消息及结果的实现方式、Celery中间人(broker)的实现方式。
    例如:初始化 Celery 对象任务名为 mail,后端通过 Redis 保存信息,消息队列也由 Redis 提供服务,如下所示。
    celery = Celery('mail', backend='redis://localhost', broker='redis://localhost:6379/0')
    4.启动 Redis
    管理员权限运行 cmd 环境,进入 Redis 目录,运行如下命令启动 Redis。
    # redis-server.exe redis.conf
    5.启动 Celery 处理任务
    以管理员权限运行 cmd 环境,激活 virtualenv。
    假设 mail.py 封装于名位 mail 的包内,且 mail 包处于 src 目录下,则进入 mail 包的前级目录下(即src),运行如下命令。
    注意:单进程命令如下。
    # celery -A mail.mail worker -l info -P solo
    注意:多进程并发命令如下。Celery 默认设置 Worker 以 Pool 模式启动,默认大小为 CPU 核心数量,缺省序列化机制是 pickle,但可以指定为 json。
    # celery -A mail.mail worker -l info
    6.运行基于 Celery 的异步程序
    运行调用异步发送邮件函数的程序,便可以实现异步发送邮件的功能。
    随后,便可在 Celery 的 Worker 界面中看到类似的任务处理消息。
  • 相关阅读:
    使用DIDatepicker
    使图片与背景融为一体
    CAGradientLayer的一些属性解析
    UIButton的titleLabel
    JAVA多线程和并发基础面试问答
    Java多线程技术学习笔记(一)
    【转】Java 内存模型及GC原理
    【转】JVM 基础知识
    【转】Java 类的生命周期详解
    JVM内存模型及内存分配过程
  • 原文地址:https://www.cnblogs.com/autopenguin/p/5956460.html
Copyright © 2011-2022 走看看