【问题标题】:Python Django App deployment on Azure app service with celery and websocket使用 celery 和 websocket 在 Azure 应用服务上部署 Python Django 应用
【发布时间】:2019-11-29 10:17:31
【问题描述】:

我正在尝试将我的 Django 应用程序从 Heroku 移动到 Azure 应用服务。

应用程序由 Websocket 和 Rest API 组成。

所以应用程序的 Web 部分在 daphne Web 服务器上运行,而工作部分在 celery 上运行。

在 Heroku 中,我的 Procfile 看起来像

web: daphne backend.asgi:application --port $PORT --bind 0.0.0.0 -v 0
worker: celery worker -A backend --loglevel=debug --concurrency=8

当我在 Azure 应用程序服务上尝试相同的操作时,他们提供了一个启动命令来在构建后启动服务器。

我有 web 和 worker 命令来运行服务器。我尝试使用 sh 文件来执行 Web 和 worker 命令。但它不会工作

以下是我面临的问题

  1. Daphne 服务器命令在 azure 中不起作用,但是当我更改它时 到 gunicorn 它可以工作 [但不支持 WebSocket :( 通过使用 gunicorn ]
  2. 另外,我不知道如何在 azure app 服务中运行 web 和 worker,因为他们有 只有一个启动命令选项

欢迎任何帮助或指导

提前谢谢.....

【问题讨论】:

    标签: python celery azure-web-app-service azure-webapps daphne


    【解决方案1】:

    我通过使用带有简单& 选项的基本DockerFile 得到了解决方案。 我附上了我在 azure 中使用的自定义 DockerFile

    FROM python:3.7
    RUN mkdir -p /opt/services/app/src
    WORKDIR /opt/services/app/src
    ADD . /opt/services/app/src
    RUN pip install -r requirements.txt
    EXPOSE 8000
    CMD python manage.py collectstatic --no-input
    CMD python manage.py migrate
    CMD daphne backend.asgi:application --port 8000 --bind 0.0.0.0 -v 0 & celery worker -A backend --loglevel=debug --concurrency=8
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-14
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      相关资源
      最近更新 更多