Tag: 芹菜

使用–net = host时,如何将芹菜容器连接到rabbitmq容器?

使用–net = host时,我无法将芹菜容器连接到rabbitmq容器。 我开始我的rabbitmq: docker run -d –rm –net=host –hostname=rabbitmq –name=rabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=donald -e RABBITMQ_DEFAULT_PASS=duck rabbitmq-mgnt 我的rabbitmq服务器是在DNS中定义的: nslookup amqp Server: 127.0.0.1 Address: 127.0.0.1#53 Name: amqp.service.consul Address: 10.68.32.180 我可以连接和validation凭据: curl -i -u donald:duck http://amqp:15672/api/whoami HTTP/1.1 200 OK vary: Accept-Encoding, origin Server: MochiWeb/1.1 WebMachine/1.10.0 (never breaks eye contact) Date: Mon, 27 Feb 2017 […]

从烧瓶传到芹菜工人的自定义字段

背景 为了docker化我的服务,我必须分开瓶子代码和芹菜任务代码。 为了做到这一点,我遵循这个例子 。 问题 我需要从瓶子app向芹菜工作者提供一些信息。 要做到这一点,我可以每次将它作为celery.send_task()中的parameter passing,但这很丑陋。 这些信息将被芹菜工作者处理(用于关联日志)消耗。 题 我怎么能从celery.send_task的celery.send_task中的场景后面传递瓶子app的信息给芹菜工作人员,并在工作进程中使用@ celery.task? 提前致谢。

在多个端口上创builddocker的副本

我正在试图做的 – 在芹菜我的问题在docker工运行气stream – 我的芹菜工人在容器中,我不知道如何扩大他们 我的docker-comopose文件: version: '2' services: mysql: image: mysql:latest restart: always ports: – "3306:3306" environment: – MYSQL_RANDOM_ROOT_PASSWORD=true – MYSQL_USER=airflow – MYSQL_PASSWORD=airflow – MYSQL_DATABASE=airflow volumes: – mysql:/var/lib/mysql rabbitmq: image: rabbitmq:3-management restart: always ports: – "15672:15672" – "5672:5672" – "15671:15671" environment: – RABBITMQ_DEFAULT_USER=airflow – RABBITMQ_DEFAULT_PASS=airflow – RABBITMQ_DEFAULT_VHOST=airflow volumes: – rabbitmq:/var/lib/rabbitmq webserver: image: airflow:ver5 restart: […]

docker工人应用程序无法看到Redis服务器

我正在尝试使用docker来安装3个应用程序。 其中一个是烧瓶网站的应用程序,另一个是Redis服务器,另一个是芹菜应用程序,将通过redis与烧瓶通信。 现在前2似乎没有任何问题,但对于烧瓶的应用程序,我得到这个错误: celery_1以代码1退出 我的docker-compose.yml文件如下所示: version: '2' services: redis: image: "redis:alpine" web: build: . ports: – "7998:7998" command: "gunicorn -b 0.0.0.0:7998 –log-level TRACE common_apps:app" celery: build: . command: "celery -A common_apps.celery_app worker" 如果我切出芹菜部分并单独启动,我得到的错误消息是无法findredis主机(但这可能是因为主机名redis只存在于docker-compose上下文中) 有什么想法破坏在这里? 非常感谢

芹菜:工人在“broker_heartbeat”秒后收到第一个任务

Environment: – Vagrant (1.9.1) Ubuntu 14.04: – Docker (version 1.12.5): – RabbitMQ v3.6.5 – Client (Celery app v4.0.2, Python 2.7) – Server (Celery app v4.0.2, Python 3.5) 用例:functiontesting。 Workflow #1: 1. py.test (TestApp) starts in docker RabbitMQ and Server application. 2. TestApp registers "new" Client by sending task to Server. 3. TestApp starts in docker […]

rabbitmq工人继续下线

我一直在使用rabbitmq作为我的芹菜工人的经纪人,这是我的气stream应用的一部分。 所有这三个 – rabbitmq,芹菜和气stream都在docker集装箱。 我有3个节点上的芹菜工人与我的主服务器上的rabbitmq进行对话以代理这个工作。 应用程序工作正常,当我最初提出,但工人一段时间后离线。 这个问题似乎与rabbitmq在哪里closures了他们下线的工人的渠道。 这里是rabbitmq错误的实际文本: 017-05-24T14:31:39.922152707Z =ERROR REPORT==== 24-May-2017::14:31:39 === 2017-05-24T14:31:39.922160602Z Ranch listener rabbit_web_dispatch_sup_15672 had connection process started with cowboy_protocol:start_link/4 at <0.11802.6> exit with reason: {[{reason,badarg},{mfa, {rabbit_mgmt_wm_whoami,is_authorized,2}},{stacktrace,[{ets,lookup, [rabbit_user,<<"airflow">>],[]},{rabbit_misc,dirty_read,1, [{file,"src/rabbit_misc.erl"},{line,390}]}, {rabbit_auth_backend_internal,internal_check_user_login,2, [{file,"src/rabbit_auth_backend_internal.erl"},{line,122}]}, {rabbit_access_control,try_authenticate,3, [{file,"src/rabbit_access_control.erl"},{line,88}]}, {rabbit_access_control,'-check_user_login/2-fun-0-',4, [{file,"src/rabbit_access_control.erl"},{line,74}]},{lists,foldl,3, [{file,"lists.erl"},{line,1263}]},{rabbit_mgmt_util,is_authorized,6, [{file,"src/rabbit_mgmt_util.erl"},{line,149}]},{cowboy_rest,call,3, [{file,"src/cowboy_rest.erl"},{line,976}]}]},{req,[{socket,#Port<0.198143>}, {transport,ranch_tcp},{connection,keepalive},{pid,<0.11802.6>},{method, <<"GET">>},{version,'HTTP/1.1'},{peer,{{172,17,0,1},59755}},{host,<<"my-server">>},{host_info,undefined},{port,15672}, {path,<<"/api/whoami">>},{path_info,undefined},{qs,<<>>},{qs_vals,[]}, {bindings,[]},{headers,[{<<"host">>,<<"my-server:15672">>}, {<<"connection">>,<<"keep-alive">>},{<<"authorization">>, <<"BasicYWlyZmxvdzphaXJmbG93">>},{<<"user-agent">>, <<"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 […]

我如何在Docker容器中运行2个长命令

我的项目基于python烧瓶和芹菜与RabbitMq。 所以我必须在一个容器中运行两个长的服务: Two services: 1. gunicorn -w 64 -b 127.0.0.1:8888 manage:app 2. celery worker -A celery_worker.celery –loglevel=info 这两个服务都是长时间运行的命令 我不知道如何编写Dockerfile来达到我的目的。 我试过这个: CMD ["gunicorn -w 64 -b 127.0.0.1:8888 manage:app", "celery worker -A celery_worker.celery –loglevel=info"] 但它不起作用。 在我决定在我的项目中使用docker之前,我使用supervisor同时执行这两个命令。 但是主pipe在docker集装箱上有一些问题,我解决不了( DETAIL )。 所以我想知道如何达到我的目的,在Docker容器中运行2个长时间的服务,如何写这个Dockerfile。 我想执行那些2个服务可以停止的“docker stop”,那个2个服务可以启动的“docker start”…..

OSError:在Docker中初始化Celery时,权限被拒绝

运行docker撰写时,出现以下错误。 这个问题在我的Mac OS开发环境中完全没有发生(在Ubuntu和debian中尝试部署时发生这个错误),但是这个错误似乎表明Celery没有权限写入celerybeat文件。 我一直在努力试图让这个工作(试图给予芹菜必要的权限),但没有运气。 错误 celery_1 | [2017-06-17 13:08:26,509: INFO/Beat] beat: Starting… celery_1 | [2017-06-17 13:08:26,556: ERROR/Beat] Removing corrupted schedule file 'celerybeat-schedule': DBAccessError(13, 'Permission denied') celery_1 | Traceback (most recent call last): celery_1 | File "/usr/local/lib/python2.7/site-packages/celery/beat.py", line 376, in setup_schedule celery_1 | self._store = self._open_schedule() celery_1 | File "/usr/local/lib/python2.7/site-packages/celery/beat.py", line 366, in _open_schedule celery_1 | […]

如何在气stream中重新启动芹菜工人

我目前遇到一个问题,我的芹菜工人偶尔冻结,需要重新启动。 我有一个Airflow的实例,我想使用BashOperator或SSHOperator来configuration和重新启动,但是我不确定如何继续,因为它在Docker容器中。 从本地主机我只是“docker重启工人”,但由于Bash在气stream容器内运行,我需要find一种方法来重新启动通过气streamCLI或SSH从容器到主机,这听起来可怕。 有没有一个优雅的方法来处理这个问题? 编辑:我看到花有一个REST API,我可以重新启动池,但我必须在我的芹菜configuration启用。 它看起来像气stream设置已经configuration ,有没有什么办法来覆盖这个?

芹菜吃了记忆

我在aws上有一个t2.medium实例。 我的两个Python应用程序和他们的芹菜工作人员在不同的docker集装箱内运行。 共有4个容器正在运行。 无缘无故,芹菜吃了很多实例的记忆。 ps命令输出的屏幕截图 我已经检查过,django正在运行DEBUG_MODE False。 我已经将worker_max_tasks_per_childconfiguration为200,将worker_max_memory_per_childconfiguration为200MB。 我有: Ubuntu版本:16.04 Python版本:3.5 截至目前,我没有执行任何任务,仍然吃掉实例内存。 请帮我debugging问题。 芹菜报告的输出 软件 – >芹菜:4.0.2(latentcall)kombu:4.0.2 py:3.5.2台球:3.5.0.2 py-amqp:2.1.4 平台 – >系统:Linux arch:64bit,ELF imp:CPython loader – > celery.loaders.default.Loader 设置 – >运输:amqp结果:禁用