我是第一次使用 ECS。我已经对我的Django 2.2应用程序进行了 docker 化,并使用 ECS 和 uwsgi 在生产环境中运行 Django 应用程序。
在开发环境中,我不得不运行三个命令来运行 Django 服务器、celery 和 celery beat
python manage.py runserver
celery -A qcg worker -l info
celery beat -A qcg worker -l info
qcg
我的申请在哪里。
我的Dockerfile具有以下uwsgi
配置
EXPOSE 8000
ENV UWSGI_WSGI_FILE=qcg/wsgi.py
ENV UWSGI_HTTP=:8000 UWSGI_MASTER=1 UWSGI_HTTP_AUTO_CHUNKED=1 UWSGI_HTTP_KEEPALIVE=1 UWSGI_LAZY_APPS=1 UWSGI_WSGI_ENV_BEHAVIOR=holy
ENV UWSGI_WORKERS=2 UWSGI_THREADS=4
ENV UWSGI_STATIC_MAP="/static/=/static_cdn/static_root/" UWSGI_STATIC_EXPIRES_URI="/static/.*\.[a-f0-9]{12,}\.(css|js|png|jpg|jpeg|gif|ico|woff|ttf|otf|svg|scss|map|txt) 315360000"
USER ${APP_USER}:${APP_USER}
ENTRYPOINT ["/app/scripts/docker/entrypoint.sh"]
该entrypoint.sh
文件有
exec "$@"
我已经创建了 ECS 任务定义,并且在容器的命令输入中,我有
uwsgi --show-config
这将启动uwsgi
服务器。
现在我在集群中运行 1 个 EC2 实例,并运行一个带有两个任务定义实例的服务。
我不知道如何在我的应用程序中运行 celery 任务和 celery beat。
我是否需要为运行 celery 和 celery-beat 创建单独的任务?