celery 可视化_django+celery + rabbitmq + redis +flower+supervisor可视化分布式异步多任务...

本文详细介绍了如何使用Django、Celery、RabbitMQ和Redis搭建分布式异步任务系统,并结合flower进行任务可视化监控。内容包括Celery的安装配置、RabbitMQ的设置、flower的部署以及Celery的使用,如任务创建、任务执行、任务结果存储和定时任务。同时,文中还提到了如何在Django中配置Celery,以及如何通过Supervisor管理Celery工作进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

理论加实战

实战

centos7下python3.6

pip3 install supervisor,Celery

supervisor是后台执行

为了shell终端输入celery就可以用必须执行下面命令,要先找到celery安装在哪里 pip安装的一定在python安装目录的bin下面

装好后 ln-s /usr/local/python3/bin/celery /usr/bin/celery

flower是异步任务可视化, rabbitmq的配置网上也有很多

我列一下最关键的几步

1.rabbitmq命令

2.supervisor配置文件 flower的重启需要你杀掉进程再起

3.clelery全局配置

效果

4个异步任务

django中配置

rom celery importCeleryfrom django.conf importsettingsfrom django.core.mail importsend_mailimportlogging,os,django#创建对象

app=Celery('celery_task',broker='redis://:redis密码@redis地址:端口号/哪个库')

举例

有密码版

redis://:123456@192.168.4.33:9000/8无密码版

redis://192.168.4.33:9000/8logger=logging.getLogger('django')#初始化django配置文件

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dailyfresh.settings")

django.setup()#定义发邮件任务函数

#定义任务函数需要传进来三个参数

@app.task固定写法defsend_emils(to_emil,username,token):"""发送激活邮件"""

#logger.error([to_emil,username,token])

subject = '邮件主题'sender=settings.EMAIL_FROM

receiver=[to_emil]

message= ''html_message= '

%s欢迎您

请点击以下链接激活 http://127.0.0.1:8000/user/active/%s' %(

username, token, token)

send_mail(subject, message, sender, receiver, html_message=html_message)

#外部调用

from celery_tasks.tasks import send_emils

#可以用celery异步发送邮件,原本发送邮件是阻塞的

send_emils.delay(email,username,token)

上面搞好后执行

0.mkdir /etc/supervisord/

echo_supervisord_conf > /etc/supervisord.conf

vim /etc/supervisord/supervisord.conf

大写GG按两下在按下字母o 将以下粘贴进去

[program:celeryd]

:这个路径是你写了任务函数的上一层目录

directory=/etc/my_object/daydayshop/dailyfresh

command=celery -A celery_tasks.tasks worker  -l info

stdout_logfile=/var/log/celeryd.log

stderr_logfile=/var/log/celeryd.log

autostart=true

autorestart=true

startsecs=10

stopwaitsecs=600

然后esc x保存退出

执行supervisord -c /etc/supervisord/supervisord.conf

然后tail -5  /var/log/celeryd.log

[2019-04-18 08:44:14,891: INFO/MainProcess] Connected to redis 你配置的redis

[2019-04-18 08:44:14,958: INFO/MainProcess] mingle: searching for neighbors

[2019-04-18 08:44:16,027: INFO/MainProcess] mingle: all alone

[2019-04-18 08:44:16,110: INFO/MainProcess] celery@你的主机名 ready.

supervisorctl -c /etc/supervisord/supervisord.conf start celeryd

启动

理论部分

定时任务

如果我们想某日某时执行某个任务,或者每隔一段时间执行某个任务,也可以使用celery来完成.   使用定时任务,需要安装额外包:

pip install django_celery_beat

首先在settings.py中安装此应用:

INSTALLED_APPS =['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','demo','django_celery_results','django_celery_beat', #安装应用

]

在celery_demo/celery.py模块中增加定时任务配置:

from celery importCeleryfrom django.conf importsettingsimportos#为celery设置环境变量

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'celery_demo.settings')#创建应用

app = Celery("demo")#配置应用

app.conf.update(#配置b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值