《Django 5 By Example》閱讀筆記:p383-p387

codists發表於2024-11-28

《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)

相關文章