如何解决为什么我的 Celery 远程控制功能挂起?
我正在尝试使用 Celery 的远程控制功能来撤销任务。大多数情况下,我尝试使用 app.control.revoke(task_id)
的函数只是挂起而不会产生结果。有几次它可以工作,但有 95% 的时间会挂起。 app.control.ping
我在 Heroku 上使用 Celery 4.2.1 版和 Kombu 4.6.8(尝试将 Kombu 升级到 4.6.11,没有任何更改)和 cloudamqp for RabbitMQ。
有关我执行键盘转义时的堆栈跟踪,请参见下文。
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/commands/shell.py",line 69,in handle
self.run_shell(shell=options['interface'])
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/commands/shell.py",line 61,in run_shell
raise ImportError
ImportError
During handling of the above exception,another exception occurred:
Traceback (most recent call last):
File "/app/.heroku/python/lib/python3.6/code.py",line 91,in runcode
exec(code,self.locals)
File "<console>",line 1,in <module>
File "/app/.heroku/python/lib/python3.6/site-packages/celery/app/control.py",line 253,in ping
timeout=timeout,**kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/celery/app/control.py",line 454,in broadcast
limit,callback,channel=channel,File "/app/.heroku/python/lib/python3.6/site-packages/kombu/pidBox.py",line 346,in _broadcast
matcher=matcher)
File "/app/.heroku/python/lib/python3.6/site-packages/kombu/pidBox.py",line 307,in _publish
with self.producer_or_acquire(producer,chan) as producer:
File "/app/.heroku/python/lib/python3.6/contextlib.py",line 81,in __enter__
return next(self.gen)
File "/app/.heroku/python/lib/python3.6/site-packages/kombu/pidBox.py",line 267,in producer_or_acquire
with self.producer_pool.acquire() as producer:
File "/app/.heroku/python/lib/python3.6/site-packages/kombu/resource.py",line 83,in acquire
R = self.prepare(R)
File "/app/.heroku/python/lib/python3.6/site-packages/kombu/pools.py",line 62,in prepare
p = p()
File "/app/.heroku/python/lib/python3.6/site-packages/kombu/utils/functional.py",line 210,in __call__
return self.evaluate()
File "/app/.heroku/python/lib/python3.6/site-packages/kombu/utils/functional.py",line 213,in evaluate
return self._fun(*self._args,**self._kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/kombu/pools.py",line 42,in create_producer
conn = self._acquire_connection()
File "/app/.heroku/python/lib/python3.6/site-packages/kombu/pools.py",line 39,in _acquire_connection
return self.connections.acquire(block=True)
File "/app/.heroku/python/lib/python3.6/site-packages/kombu/resource.py",line 78,in acquire
R = self._resource.get(block=block,timeout=timeout)
File "/app/.heroku/python/lib/python3.6/queue.py",line 164,in get
self.not_empty.wait()
File "/app/.heroku/python/lib/python3.6/threading.py",line 295,in wait
waiter.acquire()
KeyboardInterrupt
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。