Celery: OSError: рдЗрд╡реЗрдВрдЯрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдЕрдЬрд╡рд╛рдЗрди рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдореЗрдВ рдмрдВрдж рд╕реЙрдХреЗрдЯ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдЬреВрди 2018  ┬╖  23рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: celery/celery

рдЕрдЬрд╡рд╛рдЗрди рд╕рдВрд╕реНрдХрд░рдг: 4.2.0

рдкреНрд░рдЬрдирди рдХрд░рдиреЗ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛

docker-compose.yml

version: '2'

services:
  worker:
    build: .
    depends_on:
      - rabbitmq

  rabbitmq:
    image: rabbitmq:alpine

Dockerfile

FROM alpine

RUN apk add --no-cache build-base python3 python3-dev
RUN pip3 install celery eventlet

CMD celery -b amqp://rabbitmq worker -P eventlet --loglevel=DEBUG
$ docker-compose up --build

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░

рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЬреБрдбрд╝рд╛ рд░рд╣рддрд╛ рд╣реИ

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ 3 рдорд┐рдирдЯ рдмрд╛рдж, рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рдорд╛рди рдЯреНрд░реИрд╕рдмреИрдХ рдХреЗ рд╕рд╛рде рдХрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ:

[2018-06-14 20:11:44,213: WARNING/MainProcess] Traceback (most recent call last):
[2018-06-14 20:11:44,213: WARNING/MainProcess] File "/usr/lib/python3.6/site-packages/eventlet/hubs/poll.py", line 114, in wait
    listener.cb(fileno)
[2018-06-14 20:11:44,214: WARNING/MainProcess] File "/usr/lib/python3.6/site-packages/celery/worker/pidbox.py", line 120, in loop
    connection.drain_events(timeout=1.0)
[2018-06-14 20:11:44,214: WARNING/MainProcess] File "/usr/lib/python3.6/site-packages/kombu/connection.py", line 301, in drain_events
    return self.transport.drain_events(self.connection, **kwargs)
[2018-06-14 20:11:44,215: WARNING/MainProcess] File "/usr/lib/python3.6/site-packages/kombu/transport/pyamqp.py", line 103, in drain_events
    return connection.drain_events(**kwargs)
[2018-06-14 20:11:44,216: WARNING/MainProcess] File "/usr/lib/python3.6/site-packages/amqp/connection.py", line 491, in drain_events
    while not self.blocking_read(timeout):
[2018-06-14 20:11:44,217: WARNING/MainProcess] File "/usr/lib/python3.6/site-packages/amqp/connection.py", line 496, in blocking_read
    frame = self.transport.read_frame()
[2018-06-14 20:11:44,217: WARNING/MainProcess] File "/usr/lib/python3.6/site-packages/amqp/transport.py", line 243, in read_frame
    frame_header = read(7, True)
[2018-06-14 20:11:44,218: WARNING/MainProcess] File "/usr/lib/python3.6/site-packages/amqp/transport.py", line 426, in _read
    raise IOError('Socket closed')
[2018-06-14 20:11:44,218: WARNING/MainProcess] OSError: Socket closed
[2018-06-14 20:11:44,219: WARNING/MainProcess] Removing descriptor: 7

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЦрд░рдЧреЛрд╢рдмрд┐рдЯ рд╕рд░реНрд╡рд░ рдирд┐рдореНрди рдХреЗ рд╕рдорд╛рди рдЪреЗрддрд╛рд╡рдиреА рджреЛрд╣рд░рд╛рддрд╛ рд╣реИ (рджреЛ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛):

2018-06-14 20:11:44.209 [warning] <0.586.0> closing AMQP connection <0.586.0> (172.19.0.3:42678 -> 172.19.0.2:5672):
missed heartbeats from client, timeout: 60s
Eventlet Workers Pool Gevent Workers Pool RabbitMQ Broker Bug Report

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@auvipy рдЖрдкрдиреЗ рдЗрд╕реЗ рдмрдВрдж рдХреНрдпреЛрдВ рдХрд┐рдпрд╛? рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИред

рд╕рднреА 23 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдиреЛрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХрд┐ prefork рдХреЗ рдмрдЬрд╛рдп eventlet , RabbitMQ рд╕рд░реНрд╡рд░ рдЕрднреА рднреА рдпрд╛рдж рдХрд┐рдпрд╛ рджрд┐рд▓ рдХреА рдзрдбрд╝рдХрди рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреА рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдореЗрдВ рдореБрджреНрд░рд┐рдд рдирд╣реАрдВ рдЪреЗрддрд╛рд╡рдиреА рд╣реИ:

2018-06-14 20:36:04.807 [warning] <0.698.0> closing AMQP connection <0.698.0> (172.19.0.3:46040 -> 172.19.0.2:5672):
missed heartbeats from client, timeout: 60s

рдФрд░ gevent eventlet рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:

[2018-06-14 20:43:29,908: WARNING/MainProcess] Traceback (most recent call last):
[2018-06-14 20:43:29,908: WARNING/MainProcess] File "src/gevent/_waiter.py", line 119, in gevent.__waiter.Waiter.switch
[2018-06-14 20:43:29,908: WARNING/MainProcess] File "/usr/lib/python3.6/site-packages/celery/worker/pidbox.py", line 120, in loop
    connection.drain_events(timeout=1.0)
[2018-06-14 20:43:29,909: WARNING/MainProcess] File "/usr/lib/python3.6/site-packages/kombu/connection.py", line 301, in drain_events
    return self.transport.drain_events(self.connection, **kwargs)
[2018-06-14 20:43:29,909: WARNING/MainProcess] File "/usr/lib/python3.6/site-packages/kombu/transport/pyamqp.py", line 103, in drain_events
    return connection.drain_events(**kwargs)
[2018-06-14 20:43:29,909: WARNING/MainProcess] File "/usr/lib/python3.6/site-packages/amqp/connection.py", line 491, in drain_events
    while not self.blocking_read(timeout):
[2018-06-14 20:43:29,910: WARNING/MainProcess] File "/usr/lib/python3.6/site-packages/amqp/connection.py", line 496, in blocking_read
    frame = self.transport.read_frame()
[2018-06-14 20:43:29,910: WARNING/MainProcess] File "/usr/lib/python3.6/site-packages/amqp/transport.py", line 243, in read_frame
    frame_header = read(7, True)
[2018-06-14 20:43:29,911: WARNING/MainProcess] File "/usr/lib/python3.6/site-packages/amqp/transport.py", line 418, in _read
    s = recv(n - len(rbuf))
[2018-06-14 20:43:29,911: WARNING/MainProcess] File "/usr/lib/python3.6/site-packages/gevent/_socket3.py", line 380, in recv
    return _socket.socket.recv(self._sock, *args)
[2018-06-14 20:43:29,912: WARNING/MainProcess] ConnectionResetError: [Errno 104] Connection reset by peer
[2018-06-14 20:43:29,912: WARNING/MainProcess] 2018-06-14T20:43:29Z
[2018-06-14 20:43:29,913: WARNING/MainProcess] <built-in method switch of gevent.__greenlet_primitives.TrackedRawGreenlet object at 0x7f791830ce88> failed with ConnectionResetError

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЗрд╕ рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдирд╡реАрдирддрдо рд╡рд┐рдХрд╛рд╕ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ:

FROM alpine

RUN apk add --no-cache build-base python3 python3-dev
RUN pip3 install https://github.com/celery/celery/zipball/master#egg=celery https://github.com/celery/billiard/zipball/master#egg=billiard https://github.com/celery/py-amqp/zipball/master#egg=amqp https://github.com/celery/kombu/zipball/master#egg=kombu https://github.com/celery/vine/zipball/master#egg=vine eventlet gevent

CMD celery -b amqp://rabbitmq worker -P eventlet --loglevel=DEBUG

рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╣рдо рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдПрдХ рд╣реА рдХрддрд╛рд░ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ task_acks_late = True рдФрд░ worker_prefetch_multiplier = 1 рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЫреЛрдЯреЗ рд▓реЛрдЧреЛрдВ рдХрд╛ рдорд┐рд╢реНрд░рдг рд╣реИред

Celery 3.x рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ "рдЧрд╛рдпрдм" рд╣реЛ рдЬрд╛рддреА рд╣реИ

FYI рдХрд░реЗрдВ

рдЕрдЬрд╡рд╛рдЗрди 4.1.0 рдФрд░ рдХреЛрдореНрдмреВ 4.1.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкрд╣рд▓реЗ, рд░рд┐рдЯреНрд░реАрдЯ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рдереЗред рдХреНрд░рдорд╢рдГ 4.2.0 рдФрд░ 4.2.1 рджреЛрдиреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд░рд┐рдЯреНрд░реАрдЬ рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╕рдорд╛рди рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧреЗ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рд╢реНрд░рдорд┐рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрднреА рднреА рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд╣рдо prefork рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

-amqp==2.2.2
+amqp==1.4.9
-billiard==3.5.0.3
+billiard==3.3.0.23
-celery==4.2.0
+celery==3.1.23
-kombu==4.2.1
+kombu==3.0.34
-pyramid-celery==3.0.0
+pyramid-celery==2.0.0

рдмреНрд░реЛрдХрд░ рдХрдиреЗрдХреНрд╢рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд┐рдЧ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рджрд┐рд▓ рдХреА рдзрдбрд╝рдХрди рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдЪреВрдВрдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 4.2.0 , # 4148)ред

рд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рдЪреВрдХ - рдкреНрд░рд▓реЗрдЦрди

рдмреНрд░реЛрдХрд░_рд╣рд╛рд░реНрдЯрдмреАрдЯ

рд╕рдорд░реНрдерд┐рдд рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ:

  • рдЭрд╛рдВрдХрдирд╛

рдбрд┐рдлрд╝реЙрд▓реНрдЯ: 120.0 (рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдмрд╛рддрдЪреАрдд)ред

рдЖрдк broker_heartbeat=0 рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдореНрдореАрдж рд╣реИ рдХреА рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛ред

@ y0ngdi рдореИрдВрдиреЗ broker_heartbeat=0 рд╕реЗрдЯ рдХрд┐рдпрд╛, рддреНрд░реБрдЯрд┐ рдореЗрдВ рдХрдореА рдЖрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИред

amqp==2.3.2
celery==4.2.0
gevent==1.3.4
greenlet==0.4.13
kombu==4.2.0
рдЯреНрд░реИрд╕рд░рдмреИрдХ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ:
[2018-06-22 09:41:21,467: INFO/MainProcess] sync with celery<strong i="11">@device_producer_tasks</strong>
[2018-06-22 09:41:21,468: ERROR/MainProcess] Control command error: error(32, 'Broken pipe')
Traceback (most recent call last):
  File "/home/ubuntu/.local/share/virtualenvs/backend-uRCQ3Clv/local/lib/python2.7/site-packages/celery/worker/pidbox.py", line 46, in on_message
    self.node.handle_message(body, message)
  File "/home/ubuntu/.local/share/virtualenvs/backend-uRCQ3Clv/local/lib/python2.7/site-packages/kombu/pidbox.py", line 129, in handle_message
    return self.dispatch(**body)
  File "/home/ubuntu/.local/share/virtualenvs/backend-uRCQ3Clv/local/lib/python2.7/site-packages/kombu/pidbox.py", line 112, in dispatch
    ticket=ticket)
  File "/home/ubuntu/.local/share/virtualenvs/backend-uRCQ3Clv/local/lib/python2.7/site-packages/kombu/pidbox.py", line 135, in reply
    serializer=self.mailbox.serializer)
  File "/home/ubuntu/.local/share/virtualenvs/backend-uRCQ3Clv/local/lib/python2.7/site-packages/kombu/pidbox.py", line 265, in _publish_reply
    **opts
  File "/home/ubuntu/.local/share/virtualenvs/backend-uRCQ3Clv/local/lib/python2.7/site-packages/kombu/messaging.py", line 181, in publish
    exchange_name, declare,
  File "/home/ubuntu/.local/share/virtualenvs/backend-uRCQ3Clv/local/lib/python2.7/site-packages/kombu/messaging.py", line 203, in _publish
    mandatory=mandatory, immediate=immediate,
  File "/home/ubuntu/.local/share/virtualenvs/backend-uRCQ3Clv/local/lib/python2.7/site-packages/amqp/channel.py", line 1732, in _basic_publish
    (0, exchange, routing_key, mandatory, immediate), msg
  File "/home/ubuntu/.local/share/virtualenvs/backend-uRCQ3Clv/local/lib/python2.7/site-packages/amqp/abstract_channel.py", line 50, in send_method
    conn.frame_writer(1, self.channel_id, sig, args, content)
  File "/home/ubuntu/.local/share/virtualenvs/backend-uRCQ3Clv/local/lib/python2.7/site-packages/amqp/method_framing.py", line 166, in write_frame
    write(view[:offset])
  File "/home/ubuntu/.local/share/virtualenvs/backend-uRCQ3Clv/local/lib/python2.7/site-packages/amqp/transport.py", line 275, in write
    self._write(s)
  File "/usr/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
error: [Errno 32] Broken pipe

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрдЬрд╡рд╛рдЗрди 4.2 рдФрд░ рдИрд╡реЗрдВрдЯрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдХреЛрдИ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛

рдореИрдВрдиреЗ рдереЛрдбрд╝реА рдЫрд╛рдирдмреАрди рдХреАред рдЕрдЬрд╡рд╛рдЗрди рдПрдХ рдирдпрд╛ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП heartbeat_check рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░рдиреЗ рд╡рд╛рд▓реЗ RabbitMQ рд╕рд░реНрд╡рд░ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдХрдорд╛рдВрдб рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рд╣реИ (рдЬреИрд╕реЗ stats , ping , ..)

рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг:

from __future__ import absolute_import, unicode_literals
from celery import Celery

app = Celery(
    'myapp',
    broker='amqp://guest@localhost//',
)
app.conf.broker_heartbeat = 5


if __name__ == '__main__':
    app.start()

рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ

$ python3 example.py worker -l DEBUG

рдЦрд░рдЧреЛрд╢ рд▓реЙрдЧ

2018-06-27 19:49:41.109 [info] <0.471.1> accepting AMQP connection <0.471.1> (127.0.0.1:42744 -> 127.0.0.1:5672)
2018-06-27 19:49:41.111 [info] <0.471.1> connection <0.471.1> (127.0.0.1:42744 -> 127.0.0.1:5672): user 'guest' authenticated and granted access to vhost '/'
2018-06-27 19:49:41.116 [info] <0.479.1> accepting AMQP connection <0.479.1> (127.0.0.1:42746 -> 127.0.0.1:5672)
2018-06-27 19:49:41.118 [info] <0.479.1> connection <0.479.1> (127.0.0.1:42746 -> 127.0.0.1:5672): user 'guest' authenticated and granted access to vhost '/'
2018-06-27 19:49:41.131 [info] <0.500.1> accepting AMQP connection <0.500.1> (127.0.0.1:42748 -> 127.0.0.1:5672)
2018-06-27 19:49:41.133 [info] <0.500.1> connection <0.500.1> (127.0.0.1:42748 -> 127.0.0.1:5672): user 'guest' authenticated and granted access to vhost '/'
2018-06-27 19:49:56.135 [warning] <0.500.1> closing AMQP connection <0.500.1> (127.0.0.1:42748 -> 127.0.0.1:5672):
missed heartbeats from client, timeout: 5s

RabbitMQ рджреНрд╡рд╛рд░рд╛ рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

$ celery inspect ping

рдЬрдм рдпрд╣ рдЖрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рддреЛ рдЕрдЬрд╡рд╛рдЗрди рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд▓реЙрдЧ рдЗрди рдХрд░рддрд╛ рд╣реИ:

[2018-06-27 19:51:25,638: DEBUG/MainProcess] pidbox received method ping() [reply_to:{'exchange': 'reply.celery.pidbox', 'routing_key': '5a7fe1f1-be67-397f-879c-d939ea3c076e'} ticket:d80183f3-a236-4057-841b-6b8cd2926917]
[2018-06-27 19:51:25,639: ERROR/MainProcess] Control command error: ConnectionResetError(104, 'Connection reset by peer')
Traceback (most recent call last):
  File "/home/bar/Desktop/foo/virtualenv/lib/python3.6/site-packages/celery/worker/pidbox.py", line 46, in on_message
    self.node.handle_message(body, message)
  File "/home/bar/Desktop/foo/virtualenv/lib/python3.6/site-packages/kombu/pidbox.py", line 129, in handle_message
    return self.dispatch(**body)
  File "/home/bar/Desktop/foo/virtualenv/lib/python3.6/site-packages/kombu/pidbox.py", line 112, in dispatch
    ticket=ticket)
  File "/home/bar/Desktop/foo/virtualenv/lib/python3.6/site-packages/kombu/pidbox.py", line 135, in reply
    serializer=self.mailbox.serializer)
  File "/home/bar/Desktop/foo/virtualenv/lib/python3.6/site-packages/kombu/pidbox.py", line 265, in _publish_reply
    **opts
  File "/home/bar/Desktop/foo/virtualenv/lib/python3.6/site-packages/kombu/messaging.py", line 181, in publish
    exchange_name, declare,
  File "/home/bar/Desktop/foo/virtualenv/lib/python3.6/site-packages/kombu/messaging.py", line 194, in _publish
    [maybe_declare(entity) for entity in declare]
  File "/home/bar/Desktop/foo/virtualenv/lib/python3.6/site-packages/kombu/messaging.py", line 194, in <listcomp>
    [maybe_declare(entity) for entity in declare]
  File "/home/bar/Desktop/foo/virtualenv/lib/python3.6/site-packages/kombu/messaging.py", line 102, in maybe_declare
    return maybe_declare(entity, self.channel, retry, **retry_policy)
  File "/home/bar/Desktop/foo/virtualenv/lib/python3.6/site-packages/kombu/common.py", line 129, in maybe_declare
    return _maybe_declare(entity, declared, ident, channel, orig)
  File "/home/bar/Desktop/foo/virtualenv/lib/python3.6/site-packages/kombu/common.py", line 135, in _maybe_declare
    entity.declare(channel=channel)
  File "/home/bar/Desktop/foo/virtualenv/lib/python3.6/site-packages/kombu/entity.py", line 185, in declare
    nowait=nowait, passive=passive,
  File "/home/bar/Desktop/foo/virtualenv/lib/python3.6/site-packages/amqp/channel.py", line 614, in exchange_declare
    wait=None if nowait else spec.Exchange.DeclareOk,
  File "/home/bar/Desktop/foo/virtualenv/lib/python3.6/site-packages/amqp/abstract_channel.py", line 50, in send_method
    conn.frame_writer(1, self.channel_id, sig, args, content)
  File "/home/bar/Desktop/foo/virtualenv/lib/python3.6/site-packages/amqp/method_framing.py", line 166, in write_frame
    write(view[:offset])
  File "/home/bar/Desktop/foo/virtualenv/lib/python3.6/site-packages/amqp/transport.py", line 275, in write
    self._write(s)
ConnectionResetError: [Errno 104] Connection reset by peer
[2018-06-27 19:51:25,647: DEBUG/MainProcess] Closed channel #2
[2018-06-27 19:51:25,647: DEBUG/MainProcess] using channel_id: 2
[2018-06-27 19:51:25,648: DEBUG/MainProcess] Channel open

рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░рдг

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдХрдиреЗрдХреНрд╢рди рдореМрдЬреВрдж рд╣реИ рдХреНрдпреЛрдВрдХрд┐ kombu.connection.Connection.heartbeat_check() рдХреЛ рдЙрджрд╛рд╣рд░рдг рдкрд░ рджреЛрд╣рд░рд╛рд╡ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕реА рдореБрджреНрджреЗ рдХреЛ рдЬрд┐рдпреЛрд╡реЗрдВрдЯ рдХреЗ рд╕рд╛рде рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред

рдореЗрд░реЗ рд▓рд┐рдП broker_heartbeat = 0 рд╕рд╛рде рд╕рдорд╛рдзрд╛рдиред

рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрд╕реНрдХрд░рдг:

amqp==2.2.2
celery==4.2.0
eventlet==0.23.0
kombu==4.2.1

рдХрд╛рд░реНрдпрдХрд░реНрддрд╛:
celery -A celery_app worker --loglevel=info -P eventlet

рдкреАрдПрд╕ рдиреЗ рд╡рд┐рдВрдбреЛрдЬ 10 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рдкрд╛рдпрдерди 2 рдФрд░ 3 рдХреЗ рд╕рд╛рдеред

@auvipy : рдХреНрдпреЛрдВ рдмрдВрдж? рдореБрджреНрджрд╛ рддрдп рдирд╣реАрдВ рд╣реИ ...

@ stojan-jovic рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛?

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рдБ, рд▓реЗрдХрд┐рди рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдмрдЧрдлрд┐рдХреНрд╕ рдирд╣реАрдВ рд╣реИред
рдФрд░ рдпрд╣ рдЕрднреА рднреА рд╣рд░ рд░реЛрдЬ рдФрд░ рдЕрдзрд┐рдХ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдмрд░реНрдмрд╛рдж рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рдЯрди рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реБрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВ рддреЛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рд╛ рдЬрд╛рдПрдЧрд╛ред

broker_heartbeat = 0 рд╕рд╛рде рд╡рд░реНрдХрдЕрд░реА рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЬрд╡рд╛рдЗрди 4.2.0 рдФрд░ рдЬреАрд╡реЗрдВрдЯ 1.2.2 (рдкрд╛рдпрдерди 2) / рд░реИрдмрд┐рдЯрдПрдордХреНрдпреВ 3.7.8 рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ 60 рдХреЗ рджрд╢рдХ рдХреЗ рд╕рдордп рдореЗрдВ рд╢реНрд░рдорд┐рдХреЛрдВ рдкрд░ рд▓рдЯрдХрд╛ рдирд╣реАрдВ рдерд╛ред

Django 1.8.4, рдкрд╛рдпрдерди 2.7.12
3.1.25 рд╕реЗ 4.2.1 рддрдХ рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рдмрд╛рдж рдЗрд╢реНрдпреВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ CELERY_BROKER_HEARTBEAT = 0 рдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред

@auvipy рдЖрдкрдиреЗ рдЗрд╕реЗ рдмрдВрдж рдХреНрдпреЛрдВ рдХрд┐рдпрд╛? рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИред

@djlambert рд╡рд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рдореБрджреНрджреЛрдВ /

рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдПрдХ рдХрд╛рдо рдХреЗ рдЖрд╕рдкрд╛рд╕ рдмрдЧ рдлрд┐рдХреНрд╕ рдирд╣реАрдВ рд╣реИред

рдмреЗрдЭрд┐рдЭрдХ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ @gvdmarck рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдкрдХреЗ рд▓рд┐рдП рдореВрд▓ рдХрд╛рд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

Django 1.8.4, рдкрд╛рдпрдерди 2.7.12
3.1.25 рд╕реЗ 4.2.1 рддрдХ рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рдмрд╛рдж рдЗрд╢реНрдпреВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ CELERY_BROKER_HEARTBEAT = 0 рдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред

CELERY_BROKER_HEARTBEAT рдХреЗ рдмрдЬрд╛рдп BROKER_HEARTBEAT рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

amqp == 2.2.2

рдореИрдВ рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЕрдЬрд╡рд╛рдЗрди рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрдЬрд╡рд╛рдЗрди рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдореИрдВ рдЬрд┐рд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ
рдкрд┐рдкреНрд▓реЗрдирд╡ рд░рди рд╕реЗрд▓реЗрд░реА рд╡рд░реНрдХрд░-рдП рдПрд╕.рд╕реЗрд▓рд░реА_рдПрдк-рдПрд▓ рдбрд┐рдмрдЧ-рдкреАрдк рдИрд╡реЗрдВрдЯ
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреЛрдИ рдЕрдЬрд╡рд╛рдЗрди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд▓реЙрдЧ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рдпрд╛ рдХреБрдЫ рднреА рдпрд╣ рд╕реАрдзреЗ рд╡рд┐рдВрдбреЛрдЬрд╝ cmd рдкреНрд░реЙрдореНрдкреНрдЯ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддрд╛ рд╣реИред

@ stojan-jovic, рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдЬрд╡рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Xuexiang825 picture Xuexiang825  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

xiaods picture xiaods  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

budlight picture budlight  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

fbm picture fbm  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

steinliber picture steinliber  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ