Dockerized Flask-Celery-RabbitMQ-Redis Application

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

ซึ่งจะอธิบายวิธีกำหนดค่า Flask, Celery, RabbitMQ และ Redis ร่วมกับ Docker เพื่อสร้างบริการเว็บที่อัปโหลดเนื้อหาแบบไดนามิกและโหลดเนื้อหานี้เมื่อพร้อมที่จะแสดง เราจะเน้นที่คื่นฉ่ายและบริการโดยรอบเป็นหลัก Docker ค่อนข้างตรงไปตรงมากว่าเล็กน้อย

โครงสร้างโครงการ

โครงสร้างโครงการที่เสร็จแล้วจะเป็นดังนี้:

├── Dockerfile ├── docker-compose.yml ├── README.md ├── app │ ├── app.py │ ├── tasks.py │ └── templates │ ├── download.html │ └── index.html ├── scripts │ ├── run_celery.sh │ └── run_web.sh └── requirements.txt

การสร้างแอปพลิเคชั่น Flask

ขั้นแรก เราสร้างโฟลเดอร์สำหรับแอปของเรา สำหรับตัวอย่างนี้ โฟลเดอร์ของเราชื่อ |_+_| ภายในโฟลเดอร์นี้ ให้สร้าง |_+_| ไฟล์และโฟลเดอร์ว่างชื่อ |_+_| ที่ซึ่งเทมเพลต HTML ของเราจะถูกเก็บไว้



สำหรับแอปของเรา ก่อนอื่นเราจะรวมไลบรารี Flask พื้นฐานและสร้างอินสแตนซ์ของแอป:

app

เรากำหนดสามเส้นทางสำหรับ Flask ที่จะนำไปใช้: หน้า Landing Page หน้ารองที่ฝังและรูปภาพ และเส้นทางสำหรับรูปภาพเอง เส้นทางภาพของเราครอบตัดภาพแบบไดนามิก สำหรับตัวอย่างนี้ จะครอบตัดรูปภาพโดยใช้ |_+_| และมีการหน่วงเวลาด้วยเพื่อให้เวลาที่ใช้ในการสร้างภาพมีความชัดเจนมากขึ้น

@APP.route('/') def index(): return render_template('index.html') @APP.route('/image_page') def image_page(): job = tasks.get_data_from_strava.delay() ส่งคืน render_template() 'home.html') @APP.route('/result.png'>   

medium.com

Dockerized Flask-Celery-RabbitMQ-Redis Application

ซึ่งจะอธิบายวิธีกำหนดค่า Flask, Celery, RabbitMQ และ Redis ร่วมกับ Docker เพื่อสร้างบริการเว็บที่อัปโหลดเนื้อหาแบบไดนามิกและโหลดเนื้อหานี้เมื่อพร้อมที่จะแสดง เราจะเน้นที่คื่นฉ่ายและบริการโดยรอบเป็นหลัก Docker ค่อนข้างตรงไปตรงมากว่าเล็กน้อย

ดูสิ่งนี้ด้วย: