gpt4 book ai didi

celery - Airflow 调度程序抛出错误 - 'DisabledBackend' 对象没有属性 '_get_task_meta_for'

转载 作者:行者123 更新时间:2023-12-05 07:26:58 26 4
gpt4 key购买 nike

我正在尝试在 WSL 中安装 airflow(分布式模式),我安装了 Airflow 网络服务器、Airflow Scheduler、Airflow Worker、Celery (3.1) 和 RabbitMQ。在运行 Airflow Scheduler 时,即使设置了后端,它也会抛出此错误(如下)。

错误

追溯(最近的调用最后): 文件“/usr/local/lib/python3.6/dist-packages/airflow/executors/celery_executor.py”,第 92 行,同步 状态 = 任务.状态 文件“/usr/local/lib/python3.6/dist-packages/celery/result.py”,第 398 行,状态 返回 self._get_task_meta()['status'] 文件“/usr/local/lib/python3.6/dist-packages/celery/result.py”,第 341 行,在 _get_task_meta 返回 self._maybe_set_cache(self.backend.get_task_meta(self.id)) 文件“/usr/local/lib/python3.6/dist-packages/celery/backends/base.py”,第 288 行,在 get_task_meta meta = self._get_task_meta_for(task_id)AttributeError: 'DisabledBackend' 对象没有属性 '_get_task_meta_for'

https://issues.apache.org/jira/browse/AIRFLOW-1840

这正是我遇到的错误,但找不到解决方案。

结果后端-

result_backend = db+postgresql://postgres:****@localhost:5432/postgres

broker_url = amqp://rabbitmq_user_name:rabbitmq_password@localhost/rabbitmq_virtual_host_name

求助翻遍了几乎所有的文档,还是找不到解决办法

最佳答案

我在 celery 版本 - 3.1.26.post2(使用 rabitmq、postgresql 和 airflow)上遇到了同样的问题,这个问题的原因是 celery base.py 文件中使用的字典(lib/python3 .5/site-packages/celery/app/base.py)不在键 CELERY_RESULT_BACKEND 处捕获 celery 后端,而是在键 result_backend 处捕获。

所以这里的解决方案是转到位于(lib/python3.5/site-packages/celery/app/base.py) 的base.py 文件中的_get_config 函数,在末尾在返回字典之前的函数添加下面的代码。

s['CELERY_RESULT_BACKEND'] = s['result_backend'] #code to be added

return s

这解决了问题。

关于celery - Airflow 调度程序抛出错误 - 'DisabledBackend' 对象没有属性 '_get_task_meta_for',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54134216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com