Thiết lập của tôi dựa trên ứng dụng Flask có cơ sở dữ liệu PostgreSQL và Redis. Ngoài ra, một quy trình worker được bắt đầu để xử lý các tác vụ không đồng bộ như gửi email. Tôi sử dụng Gunicorn để tạo nhiều quy trình ứng dụng. Việc chuyển các công việc từ các quy trình ứng dụng sang quy trình công nhân được thực hiện thông qua Redis.
Câu hỏi là, liệu quy trình worker có nên được bắt đầu trong một container riêng mặc dù dựa trên cùng một mã không? Hiện tại tôi sử dụng tập lệnh bắt đầu với bit có liên quan:
gunicorn --bind=0.0.0.0:8000 --workers=3 manage:app &
python -u manage.py run_worker
Ngoài ra nếu chúng được tách ra, làm thế nào tôi có thể đảm bảo rằng chúng sử dụng lại bộ chứa hệ thống tệp chung? Ngoài ra, khi nhân rộng Gunicorn với ứng dụng chính hoặc các quy trình worker, nên tạo các phiên bản bổ sung của container hoặc số lượng quy trình trong một container được tăng lên?
Liên quan: Những lợi thế của dockerizing nginx và php trong các container khác nhau là gì?