小编oh_*_*wdy的帖子

Dockerized Celery 工作线程未从 Localstack SQS 队列中获取任务

我正在使用 celery 构建一个 Flask 应用程序来执行后台任务。我的应用程序使用在 Docker 容器中运行的 localstack 来为我的消息代理在本地模拟 SQS。我已经让 Flask 和 celery 在本地运行,以便与 localstack 一起正常工作,我可以看到 Flask 接收请求,将消息添加到 SQS 队列,然后 celery 接收该任务并执行它。

我尝试将 Flask 和 celery 与 localstack 一起进行 dockerize,并且我的所有服务都按预期运行,除了 celery Worker 不执行队列中的任务。我可以在本地启动一个 celery 工作程序来读取队列并执行任务,但 docker celery 工作程序不会提取任何任务。

在 Flask 容器中运行 celery Worker 达到了相同的结果,并添加了--without-gossip我在这个github 线程中找到的参数。

我是否在 docker 架构中遗漏了一些导致 celery 无法从 SQS 队列中提取的内容?

这是我的 docker-compose.yml:


services:
  dev:
    build:
      context: .
      dockerfile: 'dev.Dockerfile'
    ports:
    - "5050:5000"
    restart: always
    volumes:
    - .:/app
    environment:
    - GUNICORN_CMD_ARGS="--reload"
    - docker_env=true
    stdin_open: true …
Run Code Online (Sandbox Code Playgroud)

celery flask docker python-3.6 localstack

2
推荐指数
1
解决办法
2298
查看次数

标签 统计

celery ×1

docker ×1

flask ×1

localstack ×1

python-3.6 ×1