我正在努力调试我突然遇到的问题并且会重视一些建议 .

我正在使用带有Django的芹菜3.1.18,RabbitMQ作为代理,Oracle数据库作为后端,即:

CELERY_RESULT_BACKEND = 'djcelery.backends.database.DatabaseBackend'

我的代码使用了和弦,并且已经成功运作了一年左右 .

突然之间的和弦并没有触发我的Dev和Prod envs的回调,我对如何进一步调试感到茫然 . 代码没有改变,昨晚,没有改变代码*我做的事情使得和弦恢复生命只是为了今天早上再次停止工作..暗示这是某种资源问题而不是代码问题 .

到目前为止,我有:

  • 重新启动了rabbitmq-server和celery正在运行的主机 .

  • 清除所有队列并重复步骤1 .

  • 禁用后端(从settings.py中注释掉,得到有关禁用后端的错误,然后再次启用后端 .

  • 试图运行显示在文档中工作的和弦的基本命令 . 该示例挂在shell上,当您按CTRL-C时,您会得到:

来自celery import chord from tasks import add,sum callback = tsum.s()header = [add.s(i,i)for i in range(100)] result = chord(header)(callback)result.get()

^ CTraceback(最近一次调用最后一次):文件“”,第1行,在文件“/opt/exaboard/eXaboard/lib/python2.7/site-packages/celery/result.py”,第169行,在get no_ack = no_ack,文件“/opt/exaboard/eXaboard/lib/python2.7/site-packages/celery/backends/base.py”,第220行,在wait_for on_interval()文件“/ opt / exaboard / eXaboard / lib / python2 .7 / site-packages / celery / result.py“,第181行,在maybe_reraise_parent_error node.maybe_reraise()文件”/opt/exaboard/eXaboard/lib/python2.7/site-packages/celery/result.py“,第485行,在maybe_reraise result.maybe_reraise()文件“/opt/exaboard/eXaboard/lib/python2.7/site-packages/celery/result.py”,第270行,如果self.state在states.PROPAGATE_STATES中,则在maybe_reraise中:文件“/opt/exaboard/eXaboard/lib/python2.7/site-packages/celery/result.py”,第394行,状态返回self.get_task_meta()['status']文件“/ opt / exaboard / eXaboard /lib/python2.7/site-packages/celery/result.py“,第339行,在_get_task_meta中返回self._maybe_set_cache(self.backend.get_task_meta(self.id))文件“/opt/exaboard/eXaboard/lib/python2.7/site-packages/celery/backends/base.py”,第292行,在get_task_meta中meta = self._get_task_meta_for(task_id)文件“/ opt / exaboard / eXaboard / lib /python2.7/site-packages/djcelery/backends/database.py“,第40行,在_get_task_meta_for中返回self.TaskModel._default_manager.get_task(task_id).to_dict()文件”/ opt / exaboard / eXaboard / lib / python2 .7 / site-packages / djcelery / managers.py“,第144行,在get_task中返回self.get(task_id = task_id)文件”/opt/exaboard/eXaboard/lib/python2.7/site-packages/django/db /models/manager.py“,第92行,在manager_method中返回getattr(self.get_queryset(),name)(args,* kwargs)文件”/opt/exaboard/eXaboard/lib/python2.7/site-packages/django /db/models/query.py“,第351行,在get num = len(clone)文件”/opt/exaboard/eXaboard/lib/python2.7/site-packages/django/db/models/query.py“ ,第122行,在__len self._fetch_all()文件“/opt/exaboard/eXaboard/lib/python2.7/site-packages/django/db/models/query.py”,第966行,在_fetch_all self._result中_cache = list(self.iterator())文件“/opt/exaboard/eXaboard/lib/python2.7/site-packages/django/db/models/query.py”,第211行,在迭代器中如果连接[self . db] .features.supports_select_related:db @property KeyboardInterrupt中的文件“/opt/exaboard/eXaboard/lib/python2.7/site-packages/django/db/models/query.py”,第900行

任何有关如何进一步调查的建议将不胜感激!