docker部署redis並集成到django+celery實現異步發送郵件

下載redis的配置文件

[root@asimov redis]# wget http://download.redis.io/redis-stable/redis.conf

配置redis

#是否開啓安全模式,默認開啓:配bind和密碼的話開啓,不然開啓後只能本地訪問
protected-mode no
#爲0不會斷開
timeout 0
# 是否以守護進程運行 no,因爲你的docker啓動的時候已經 -d後臺運行 了
daemonize no
#沒有後臺程序控制
supervised no
#日誌級別
loglevel notice
logfile "/var/log/redis/redis-server.log"
appendonly yes
appendfilename "appendonly.aof"

docker啓動redis
–privileged=true:容器內的root擁有真正root權限,否則容器內root只是外部普通用戶權限

docker  run  -d --privileged=true -v /root/docker_data/redis/redis.conf:/etc/redis/redis.conf -v /root/docker_data/redis/redis-server.log:/var/log/redis/redis-server.log -v /root/docker_data/redis/data:/data  --name  reids  redis  redis-server  /etc/redis/redis.conf

參數
docker run -d:後臺運行
--privileged=true:讓redis容器擁有宿主的root權限
-v /root/docker_data/redis/redis.conf:/etc/redis/redis.conf :將宿主機的redis.conf掛載到容器中
-v /root/docker_data/redis/redis-server.log:/var/log/redis/redis-server.log :掛載日誌文件到宿主機
-v /root/docker_data/redis/data:/data :將redis數據持久化到宿主機文件中
--name reids redis :容器名 鏡像
redis-server /etc/redis/redis.conf:以配置文件啓動reids

掛載掛載redis日誌文件到本地的時候報錯:

'logfile "/var/log/redis/redis-server.log"'
Can't open the log file: Permission denied

意思不能指定自定義的redis.log了,裂開
如果想自定義log的話參考:https://docs.docker.com/compose/compose-file/#logging

vim搜索關鍵字logfile

:?logfile

刪除自定義日誌路徑

/var/log/redis/redis-server.log

創建容器

[root@asimov ~]# [root@asimov ~]# docker  run -d  --name  redisblog   -v /root/docker_data/redis/redis.conf:/etc/redis/redis.conf  -v /root/docker_data/redis/data:/data    redis  redis-server  /etc/redis/redis.conf

只是容器間通信的話就不用–privileged=true了
將redisblog容器加入blog-net橋接

[root@asimov ~]# docker  network  connect  blog-net redisblog

修改celery的配置
celery的消息隊列和結果存儲都用了redis

broker_url = 'redis://redisblog/0'
result_backend = 'redis://redisblog/1'

運行celery

celery  -A celery_send   worker  -l  info

celery異步發送郵件前面有寫

django異步發送郵件
在這裏插入圖片描述
查看celery執行結果

[2020-04-23 11:06:47,324: INFO/MainProcess] celery@61c1a2f92913 ready.
[2020-04-23 11:07:01,758: INFO/MainProcess] Received task: celery_send.tasks.send_email[968391e7-48c2-4dfe-8ab0-28ed372e0892]  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章