Browse Source

Remote control: Use producer pool for requests/replies. Also fixes worker EINTR error

Ask Solem 9 years ago
parent
commit
816ff03102
1 changed files with 7 additions and 1 deletions
  1. 7 1
      celery/app/control.py

+ 7 - 1
celery/app/control.py

@@ -15,6 +15,7 @@ from billiard.common import TERM_SIGNAME
 
 from kombu.pidbox import Mailbox
 from kombu.utils import cached_property
+from kombu.utils.functional import lazy
 
 from celery.exceptions import DuplicateNodenameWarning
 from celery.utils.text import pluralize
@@ -128,7 +129,12 @@ class Control(object):
 
     def __init__(self, app=None):
         self.app = app
-        self.mailbox = self.Mailbox('celery', type='fanout', accept=['json'])
+        self.mailbox = self.Mailbox(
+            'celery',
+            type='fanout',
+            accept=['json'],
+            producer_pool=lazy(lambda: self.app.amqp.producer_pool),
+        )
 
     @cached_property
     def inspect(self):