Tag: 芹菜

build立和拉动泊坞窗图像之间的不同行为 – 时钟错误?

我使用docker和docker-compose来部署应用程序。 我一直在服务器上构build镜像(用docker-compose build ),但最近转换到在本地机器上构build它们,并将它们推送到Docker Hub,然后将它们拖到远程机器上。 自从做这个改变以来,我在其中一个容器中看到了一个奇怪的新错误。 撰写文件定义了使用相同的代码库和Dockerfile(具有不同入口点)的Flask应用程序和芹菜工作者。 自从进行更改以来,每次启动我的芹菜工作人员时都会收到以下错误: app_worker_1: [2017-07-28 16:47:35,400: WARNING/MainProcess] Substantial drift from celery@worker.fb71685cd5a7 may mean clocks are out of sync. Current drift is 48 seconds. [orig: 2017-07-28 16:47:27.338937 recv: 2017-07-28 16:46:39.150362] 我从来没有见过这个错误,如果容器是build立在服务器上,它就会消失。 version: '2' services: flask: restart: always image: me/flask command: /home/app/start_app.sh env_file: ./flask/dev.env worker: restart: always image: me/flask command: /home/app/start_worker.sh env_file: […]

芹菜事件命令在容器上下文中

我试图通过使用celery events命令来监视我的celery events 我的问题是在容器中运行 – 我所看到的只是一个黑屏 – 就像绘制事件terminalUI是不可能的 有没有一个通用的解决scheme(可能不是专门与芹菜事件有关)

使用Docker在Celery中是否有魔力?

我有一个Django和瓶两个服务项目一些请求需要执行繁重的asynchronous任务。 我已经使用Redis早期的Celery + Django作为经纪人。 需要按计划运行任务。 但是..我不明白它是如何工作的内部的Docker容器假设有3个容器: – django_web – redis – celery_worker django_web和celery_worker使用redis作为经纪人。 任务在容器django_web中定义 celery_worker容器中的芹菜工作人员如何执行这项任务? 带有工作人员的容器不能访问function和操作。 这个任务的所有内容是以某种方式通过一个经纪人传递的,而且代码的位置并不重要。 或者只是通过名称和函数签名? 我找不到如何在Docker容器中使用Celery的最佳实践

Celery + Docker + Django无法运行asynchronous作业

我是芹菜和docker工人,我有问题。 我有以下结构的Django项目: generic generic celery.py … web tasks.py 通用/ celery.py: from __future__ import absolute_import, unicode_literals import os from celery import Celery import logging logger = logging.getLogger("Celery") os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'generic.settings') app = Celery('generic') app.config_from_object('django.conf:settings', namespace='CELERY') app.autodiscover_tasks() networking/ tasks.py: from __future__ import absolute_import, unicode_literals from django.conf import settings from generic.celery import app @app.task def foo(): … 泊坞窗,compose.yml: version: […]

我如何获得从另一个容器(Docker Compose)运行的RabbitMQ的IP地址?

我正在学习这个教程。 在那里,我需要将RabbitMQ IP地址设置为我的Celery设置。 我在docker-compose.yml中有三个容器:NGINX,Django + Celery和RabbitMQ。 这些都是用docker-compose up 。 但是,我需要在不同的容器中有celery.py的RabbitMQ IP地址。 通过Google, docker-machine ip <container>应该是解决scheme。 但是, docker-machine只能运行容器AFAIK。 那么,如何将容器IP地址传递到同一个docker-compose.yml文件中的另一个容器? 在这种情况下,我想要我的RabbitMQ IP地址。

任务吞吐量不会随着多个工作容器和多个用户而增加

我们正在为每个用户运行大量的后台任务,但是增加处理这些任务的线程数量并不能使每分钟执行的任务数量达到预期的加速 – 奇怪的是,只有在多个用户涉及任务 在这种情况下,“worker”是一个Python 3.6容器,它使用threading模块运行5个线程,每个线程使用同一个Google Cloud PubSub主题 这是一个演示这个问题的例子 testing1:任务队列中的800个任务,所有任务都属于1个用户(A) testing2:2000任务在另一个任务队列中,所有任务都属于另一个用户(B) testing3:我们同时运行来自1和2的两个任务队列(在两个队列中均消耗),共计2800个任务。 我们运行testing1与1个工人容器,这需要大约30分钟 我们运行testing1与2个工人容器,这需要大约15分钟才能完成 我们用1个工作容器运行testing2,这需要大约120分钟才能完成 我们用2个工作容器运行testing2,这需要大约70分钟才能完成 我们用2个工作容器运行testing3,这需要大约200分钟才能完成 我们用4个工作容器来运行testing3,这需要200多分钟才能完成 据我所知,没有“死”的线程(死锁或其他),但有一个可能的情况下线程执行速度比预期慢得多? 当我们有4个工作容器/ 20个线程时,为什么吞吐量不会增加? 还有什么可以debugging来理解为什么吞吐量没有增加? 同样,它似乎只在同时执行多个任务队列时发生。 有关工人集装箱与之交谈的更多信息以及我们迄今为止发现的信息: 工作者容器都在通过HTTP / S进行通信: 一个由Google云SQLpipe理的数据库实例(读写)。 我们没有看到任何显着的性能下降与多达100线程同时阅读或写作 一个弹性search节点(读写)。 每个用户都有自己的索引,每个任务都附有索引。 我们观察到,多个指标同时编制时,指数performance出现亏损; 然而使用批量写入模式并没有改善这一点。 另一个后端服务完成了任务的一部分,看着这个我们并没有发现它是一个瓶颈,因为它是独立的 Google Pub-Sub用于拉取和确认任务 第三方API – 我们没有遇到任何费率限制

在Docker容器中阻塞Celery task.delay

我在我的Django项目中使用芹菜。 它适用于我的MacBook和CentOS虚拟机。 当我在add.delay容器中运行它时,包含add.delay ( add是一个任务)方法的请求始终被阻塞。 我在github上创build了一个演示项目: https : //github.com/fengyouchao/proj_test 我的任务: @shared_task def add(x, y): return x + y 我的看法: def index(request): a = int(request.GET.get('a', 1)) b = int(request.GET.get('b', 2)) add.delay(a, b) return HttpResponse("Hello world") def hello(request): return HttpResponse("hello") 在演示项目中,我在docker-compose.yml中创build了三个服务: web – 运行“manage.py runserver 0.0.0.0:8000”的服务 芹菜 – 运行“芹菜”的服务 rabbitmq – 运行rabbitmq-server的服务 运行服务 docker-compose up testing curl […]

芹菜没有findpostgres容器

我在我的项目中使用django和芹菜与docker工人。 在docker,我有三个容器:应用程序,芹菜,postgres 在芹菜任务中,当我试图得到一个模型: @app.task def test(): Model.objects.get(pk=1) ,我有这个错误: Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 5432? 那个错误来自芹菜容器 。 如果我删除这个lodel电话,一切运作良好。 postgres容器在端口5432,它适用于应用程序容器。 我想这也许是因为当celery任务执行时,任务本身不是django项目的一部分,所以它没有正确的configuration。 我试过django芹菜,但有同样的错误。

on docker image level = error msg =“无法closurestar编写器:io:在closures的pipe道上读/写”

time="2017-10-27T07:39:20Z" level=error msg="Can't add file /var/app/current/app/content_classifier/forest.pickle to tar: io: read/write on closed pipe" time="2017-10-27T07:39:20Z" level=error msg="Can't close tar writer: io: read/write on closed pipe" Failed to build Docker image aws_beanstalk/staging-app: tar writer: io: read/write on closed pipe" Error response from daemon: Untar error on re-exec cmd: fork/exec /proc/self/exe: cannot allocate memory. Check snapshot logs for […]

RabbitMQ由于连接和断开而被淹没

我有一个非常奇怪的问题,我的rabbitMQ像下面那样得到一个充斥着的日志,如毫秒: =WARNING REPORT==== 12-Dec-2017::11:52:44 === closing AMQP connection <0.27756.1813> (10.0.1.44:57706 -> 10.0.1.33:5672, vhost: 'peter1_vhost', user: 'peter1'): client unexpectedly closed TCP connection =INFO REPORT==== 12-Dec-2017::11:52:44 === connection <0.27588.1813> (10.0.1.44:57710 -> 10.0.1.33:5672): user 'peter1' authenticated and granted access to vhost 'peter1_vhost' =WARNING REPORT==== 12-Dec-2017::11:52:44 === closing AMQP connection <0.27562.1813> (10.0.1.44:57708 -> 10.0.1.33:5672, vhost: 'peter1_vhost', user: 'peter1'): client […]