php celery redis,django+celery+redis框架搭建

61e573611a06?tdsourcetag=s_pcqq_aiomsg

redis架构图

第1步:安装celery与redis

警告:在pip install celery后执行 celery -A 你的项目名 worker --pool=solo -l info 报下图一错误,建议执行 pip install --upgrade https://github.com/celery/celery/tarball/master 执行完后再次执行 celery -A 你的项目名 worker --pool=solo -l info 就会出现图二样式

61e573611a06?tdsourcetag=s_pcqq_aiomsg

图一.png

61e573611a06?tdsourcetag=s_pcqq_aiomsg

图二.png

Mac OS X 安装

$ brew install Redis # Redis 安装,需提前安装 brew

$ pip install celery # pip 安装celery库

$ pip install redis # pip 安装 redis库

如果您没有安装 brew,建议您先安装 brew 参考 brew安装

Ubuntu 安装

$ sudo apt install redis # Redis 安装

$ pip install celery # pip 安装celery库

$ pip install redis # pip [安装 redis库](https://www.cnblogs.com/zuidongfeng/p/8032505.html)

Linux 安装

请访问 redis 下载 最新的安装包,本文使用的是在书写本文这个时间时最新的安装包,如官方发布更新,恕本文不另行通知更改。

$ wget http://download.redis.io/releases/redis-4.0.9.tar.gz

$ tar xzf redis-4.0.9.tar.gz

$ cd redis-4.0.9

$ make

# make完后 redis-4.0.9 目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录 src 目录下:

# 下面启动redis服务.

$ cd src

$ ./redis-server

Windows 安装 参考菜鸟教程-Redis 安装

Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。

打开一个 cmd 窗口 使用cd命令切换目录到 C:\redis 运行 redis-server.exe redis.windows.conf 。

如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:

第2步:编写代码

1在settings.py中加入

CELERY_BROKER_URL = 'redis://localhost'

#: Only add pickle to this list if your broker is secured

#: from unwanted access (see userguide/security.html)

CELERY_ACCEPT_CONTENT = ['json']

CELERY_RESULT_BACKEND = 'redis://localhost'

CELERY_TASK_SERIALIZER = 'json'

61e573611a06?tdsourcetag=s_pcqq_aiomsg

image.png

2编写任务:

import time

from celery import Celery

app = Celery('tasks', broker='redis://localhost', backend='redis://localhost')

@app.task

def add(x, y):

time.sleep(15) #使用sleep表示耗时操作

print(2)

return x+y

61e573611a06?tdsourcetag=s_pcqq_aiomsg

image.png

3在视图中调用tasks

from django.http import HttpResponse

from .tasks import add, add2

def testCelery(request):

print(add.delay(4, 4))

print(add2.delay(5, 4))

print('成功')

return HttpResponse('成功')

61e573611a06?tdsourcetag=s_pcqq_aiomsg

image.png

4在url中注册接口

from django.contrib import admin

from django.urls import path

from testCelery.views import testCelery

urlpatterns = [

path('admin/', admin.site.urls),

path('testCelery/', testCelery)

]

第3步:启动redis、celery、django

1:启动redis

切换到redis安装目录下执行:redis-server.exe redis.windows.conf

61e573611a06?tdsourcetag=s_pcqq_aiomsg

image.png

2:启动celery

执行celery -A untitled1 worker --pool=solo -l info

3:启动django

第4步:调用接口

只耗时56ms,

61e573611a06?tdsourcetag=s_pcqq_aiomsg

image.png

celery任务耗时16秒,从而实现异步

61e573611a06?tdsourcetag=s_pcqq_aiomsg

image.png

第5步:实现flower 对celery进行监控

1: 安装

pip install flower

2:启动flower

假设在server2上启动flower,flower默认的端口是5555.

celery flower -A 项目名字 --address=服务器ip --port=5555

3:监控界面

61e573611a06?tdsourcetag=s_pcqq_aiomsg

image.png

************************----------------------分割线---------------------*********************

centos Redis配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值