《Django 5 By Example》學習第 14 天,p383-p387 總結,總計 5 頁。
一、技術總結
1. asynchronous task(非同步任務)
對於非同步任務,書中使用的是 celery 和 RabbitMQ,這也是平時工作中的主流用法。
(1) celery
Python 使用的 celery 包的名字也是 celery。
2. RabbitMQ
(1) 拉取映象
docker pull rabbitmq:4.0.4-management
書中是使用的映象是 rabbitmq:3.13.1-management,雖然每個作者大多忽略說明為什麼選擇某個版本的映象,但我覺得還是有必要說明一下。為什麼映象要選擇帶 management 的映象呢?因為帶 management 的版本自帶 web 管理介面,否則無法直接訪問。下面是對比:
1)rabbitmq:4.0.4-management 映象
使用 5672 和 15672 埠。
2)rabbitmq:4.0.4 映象
為了演示,使用 5673 和 15673 埠。
否則需要手動啟用 rabbitmq_management 才可以訪問 web 管理介面:
docker exec -it rabbitmq bash
rabbitmq-plugins enable rabbitmq_management
(2) docker compose部署
rabbitmq:
image: rabbitmq:4.0.4-management
container_name: rabbitmq
restart: always
ports:
- "5672:5672" # RabbitMQ Messaging Port
- "15672:15672" # RabbitMQ Management UI
volumes:
- /data/rabbitmq/data:/var/lib/rabbitmq/
- /data/rabbitmq/log:/var/log/rabbitmq
二、英語總結(生詞:0)
無。
三、其它
docker-compose.yml 不能使用 tab 縮排!不能使用 tab 縮排!不能使用 tab 縮排!時間都去哪了~ 時間都用在找 bug 了。
四、參考資料
1. 程式設計
(1) Antonio Melé,《Django 5 By Example》:https://book.douban.com/subject/37007362/
2. 英語
(1) Etymology Dictionary:https://www.etymonline.com
(2) Cambridge Dictionary:https://dictionary.cambridge.org
歡迎搜尋及關注:程式設計人(a_codists)