Tag: 芹菜

在不同的Docker容器中运行芹菜工人的气stream设置?

我在Docker容器中运行Airflow。 我已经创build了一个单独的容器来运行Postgres服务器和Rabbitmq服务器,使用dockernetworking连接这些容器 – 遵循这篇不错的文章 。 现在,我的气streamdocker集装箱正在运行,并使用dockernetworking连接到其他集装箱 – 到目前为止,这个过程非常顺利。 问题是如何在同一容器中运行airflow webserver , airflow scheduler和airflow worker 。 经过一番研究,我发现:build议在一个容器中运行一个服务。 现在我有两个解决scheme 在同一个Airflow容器中运行多个服务 – 我无法弄清楚在Docker中实现一个新的蜜蜂的简单方法。 创build单独的容器来运行Celery worker和Airflow调度器 – 但是在airflow.cfg文件中,与Celery相关的设置是: broker_url = 'amqp://guest:guest@ksaprice_rabbitmq:8080//' , celery_result_backend = db+postgresql://developer:user889@ksaprice_postgres:5432/airflow 。 这些设置指的是数据库或rabbitmq已经运行不同的容器 – 他们不参考运行芹菜和调度程序的ip / url,我假设这是因为芹菜和调度程序在气stream服务器上运行。 我的问题是: 回到第1点:有没有一种简单的方法来在同一个Airflow容器中运行airflow webserver , airflow scheduler和airflow worker命令? 重申第2点:有没有办法在airflow.cfgconfiguration气stream调度和气stream工作在不同的docker集装箱运行 – 并使用dockernetworking链接? 我是Airflow和Docker的新宠儿。

重新启动运行supervisord程序的docker可以保留pid文件,并在重新启动时导致错误

我有一个docker,通过supervisord运行django芹菜工,程序设置非常简单 [program:celery_priority] command=python manage.py celery worker -E -Q priority –concurrency=2 –loglevel=ERROR directory=/var/lib/app stdout_events_enabled = true stderr_events_enabled = true stopwaitsecs = 600 [program:celery_medium] command=python manage.py celery worker -E -Q medium –concurrency=2 –loglevel=ERROR directory=/var/lib/app stdout_events_enabled = true stderr_events_enabled = true stopwaitsecs = 600 [program:celerycam] command=python manage.py celerycam directory=/var/lib/app stdout_events_enabled = true stderr_events_enabled = true stopwaitsecs = 600 […]

ecsdocker集装箱中芹菜工人的奇怪行为

我们有一些c4.large ecs实例,每个实例都有一个正在运行的c4.large容器,运行芹菜工作者。 我们不时看到工人被系统所杀 WorkerLostError('Worker exited prematurely: signal 9 (SIGKILL).',) 在dmesg我可以看到以下行: Memory cgroup out of memory: Kill process 27886 (celery) score 112 or sacrifice child 据我所知OOM是负责这一点 但是我也可以在dmesg看到这一行: memory: usage 964544kB, limit 1048576kB, failcnt 246284 其中说1 GB有一个限制,但我不明白这个限制的原因是什么,因为free -m说 total used free shared buffers cached Mem: 3768 3461 307 0 140 2211 -/+ buffers/cache: 1108 2659 Swap: 0 […]

从一个Docker容器连接到另一个

我想在一个docker容器中运行rabbitmq-server并使用芹菜( http://celeryproject.org/ )从另一个容器连接到它。 我使用下面的命令运行rabbitmq … sudo docker run -d -p :5672 markellul/rabbitmq /usr/sbin/rabbitmq-server 并通过芹菜运行 sudo docker run -i -t markellul/celery /bin/bash 当我试图做非常基本的教程来validationhttp://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html上的连接 我得到一个连接拒绝错误: 消费者:无法连接到amqp://guest@127.0.0.1:5672 //:[Errno 111]连接被拒绝。 当我在芹菜相同的容器上安装rabbitmq,它工作正常。 我需要做什么才能使容器互相交互?

作为docker集装箱运行的Celery&RabbitMQ:收到types为'…'的未注册任务

我对docker,芹菜和rabbitMQ比较陌生。 在我们的项目中,我们目前有以下设置:1个物理主机,运行多个docker容器: 1x rabbitmq:3pipe理容器 # pull image from docker hub and install docker pull rabbitmq:3-management # run docker image docker run -d -e RABBITMQ_NODENAME=my-rabbit –name some-rabbit -p 8080:15672 -p 5672:5672 rabbitmq:3-management 1个芹菜容器 # pull docker image from docker hub docker pull celery # run celery container docker run –link some-rabbit:rabbit –name some-celery -d celery (有更多的容器,但他们不应该对问题做任何事情) […]

如何在没有-A选项的情况下运行芹菜状态/花?

考虑这个bash会话: $ export DJANGO_SETTINGS_MODULE=web.settings $ celery status -b redis://redis.businessoptics.dev:6379/1 -t 10 Error: No nodes replied within time constraint. $ celery status -b redis://redis.businessoptics.dev:6379/1 -t 10 -A scaffold.tasks.celery_app celery@worker.9e2c39a1c42c: OK 为什么我需要-A选项? 据我所知,芹菜应该能够检测到redis上必要的元数据。 同样,如果我运行celery flower -b <redis url>它会显示它已成功连接到redis,但不显示任何真正的工人/任务/队列,并显示'stats' inspect method failed等几条消息。 再次,join-A导致它工作。 我想在不包含任何代码或其依赖关系的最小独立Docker容器中运行花。 像这样的一些回购就提供了这种东西。 那我该怎么做呢? 链接回购提供了许多选项,但没有办法指定-A选项,这表明这是没有必要的。 我是一个芹菜初学者,所以我可能会错过一些愚蠢的东西。 我应该做些什么? scaffold.tasks.celery_app模块看起来像这样: from celery import Celery from django.conf import settings […]

docker/芹菜:不能让芹菜运行

我不能让我的芹菜工人不断地听默认队列。 芹菜不断退出。 $: docker-compose up Starting tasker_rabbitmq_1 Starting tasker_celery_1 Attaching to tasker_rabbitmq_1, tasker_celery_1 tasker_celery_1 exited with code 1 rabbitmq_1 | rabbitmq_1 | RabbitMQ 3.6.1. Copyright (C) 2007-2016 Pivotal Software, Inc. rabbitmq_1 | ## ## Licensed under the MPL. See http://www.rabbitmq.com/ rabbitmq_1 | ## ## rabbitmq_1 | ########## Logs: /var/log/rabbitmq/rabbit@0bcd2c4762eb.log rabbitmq_1 | ###### ## /var/log/rabbitmq/rabbit@0bcd2c4762eb-sasl.log rabbitmq_1 […]

ElasticBeanstalk Docker,一个Container还是多个容器?

我们正在开发一个新的REST API,它将使用Docker部署在AWS ElasticBeanstalk上。 它使用Python芹菜计划的工作,这意味着单独的过程需要运行的工人,我们目前的Dockerconfiguration有三个容器… 多容器Docker: 09c3182122f7 sso "gunicorn –reload –" 18 hours ago Up 26 seconds sso-api f627c5391ee8 sso "celery -A sso worker" 18 hours ago Up 27 seconds sso-worker f627c5391ee8 sso "celery beat -A sso -" 18 hours ago Up 27 seconds sso-beat 传统观点认为,我们应该在ElasticBean上使用多容器configuration,但是由于所有的容器都使用相同的代码,因此从OPS的angular度来看,使用带有Supervisord的单个容器configuration来pipe理stream程可能更加高效和简单。 单容器w / Supervisord: [program:api] command=gunicorn –reload –bind 0.0.0.0:80 –pythonpath '/var/sso' […]

在docker集装箱内运行的芹菜pdb与改变的监听端口

寻找关于如何可以在我的docker集装箱内运行芹菜PDB的build议,同时端口转发,所以我可以从外部世界访问。 我正在遵循http://celery.readthedocs.org/en/latest/tutorials/debugging.html上的指南 我面对的问题是,即使我告诉容器。 -e CELERY_RDB_HOST ='0.0.0.0'-e CELERY_RDB_PORT ='6900'-p 6900:6900。 并且到达应用程序的断点,实际上打开的端口不是我所要求的,所以我的端口不再有效。 港口6902被打开,而不pipe我问端口是什么,它改变了,而不是我所要求的。 我知道它从100个端口列表中select它认为“可用”,但不知道如何解决这个问题。 任何build议将是受欢迎的。 谢谢!

docker工人不能启动芹菜

我有芹菜工人和Redis的Flask应用程序,并且在本地机器上运行时,它正常工作正常。 然后我尝试Dockerize应用程序。 当我尝试使用sudo docker-compose up构build/启动服务(例如,flask应用程序,Celery和Redis)时, sudo docker-compose up所有服务正在运行,除了Celery,并显示错误 ImportError:没有名为'my_celery'的模块 但是,在本地机器上工作的代码没有任何错误。 任何人都可以提出解决scheme吗? Dockerfile FROM python:3.5-slim WORKDIR celery_sample ADD . /celery_sample RUN pip install -r requirements.txt EXPOSE 8000 泊坞窗,compose.yml version: "3" services: web: build: context: . dockerfile: Dockerfile command: "python my_celery.py" ports: – "8000:8000" networks: – webnet volumes: – .:/celery_sample redis: image: redis networks: – webnet celery: […]