zoukankan      html  css  js  c++  java
  • Django + Celery 实现异步发送短信 实现及部署

    第一步 安装celery 及redis(不是redis服务,是与redis交互的库):  
    pip install pip install -U celery==4.3.0 -i https://pypi.douban.com/simple (版本可根据实际来定,这里使用的是4.3.0版本)
    pip install redis -i https://pypi.douban.com/simple
     
    第二步  项目里集成celery (即在manage.py同级的目录下新建一个 celery_mq 包)
    第三步  在celery_mq 中增加 main.py(celery实例化,主文件)  config.py (celery配置文件 即队列和结果 redis库)  result_backend 的结果是有过期时间的是一天 (可以通过ttl key 查看)
    第四步  在文件夹中增加一个 包用来定义需要执行的耗时操作这里做的是 异步发送短信 所以是 sms ,接着再 sms中定义一个task.py的文件,必须是这个名字,然后把具体的逻辑代码写在task.py文件中,也可以增加需要的外部第三方的包或者文件
    第五步  在需要调用异步任务的地方导入在 task.py 中定义好的方法
    第六步 启动 另开一个窗口(先把服务启动)在项目根目录下执行 即看到manage.py的层级
            celery -A celery_mq.main worker -l info
                -A指对应的应用程序, 其参数是项目中 Celery实例的位置。
                worker指这里要启动的worker。
                -l指日志等级,比如info等级
     
     
    部署celery (supervisor)
    [program:celery_mq]
    directory=/var/www/server/TypeServer  (celery_mq所在的目录)
    command=celery -A celery_mq.main worker -l info   (启动的命令)
    priority=1
    process_name=%(program_name)s_%(process_num)02d
    numprocs=1
    autostart=true
    autorestart=true
    stderr_logfile=/var/log/celery/celery_mqErr.log
    stdout_logfile=/var/log/celery/celery_mq.log
    redirect_stderr=true
     
    进入 supervisorctl 客户端 执行 update (此时如果你的日志文件所在目录没有创建,则会报错,需要先去创建然后接着执行update)
    然后接着 会提示 进程 celery_mq added process group 意思是加到进程组了
    然后status 即可看到 处在 running 的状态,然后可以去看一下日志
    接着就是测试看看是否可以生效了 
    测试可以查看日志和redis里的值是否能对应上,对应上即可(测试没问题) 
  • 相关阅读:
    CALayer 的一些重要属性
    [Google] Inorder Successor in Binary Search Tree, Solution
    [LeetCode] Container With Most Water, Solution
    [C++ Summary]
    [LeetCode] Count and Say, Solution
    [LeetCode] Construct Binary Tree from Preorder and Inorder Traversal, Solution
    [LeetCode] Convert Sorted List to Binary Search Tree, Solution
    [FaceBook] Hanoi Moves, Solution
    逻辑题汇总
    [Facebook] Products of all elements
  • 原文地址:https://www.cnblogs.com/guo-s/p/13376716.html
Copyright © 2011-2022 走看看