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里的值是否能对应上,对应上即可(测试没问题) 
上一篇:Celery-python下定时任务模块


下一篇:celery原理与组件